PowerApps|ギャラリーの値を出力しExcelに貼り付ける

ギャラリーの値を出力しExcelに貼り付ける
アプリ内のギャラリーの値は綺麗に整列して表示されています。非常に見やすいです。
表形式で整っている為「データを他の仕事でも使いたい」という要望をたくさんいただきます。

ギャラリーの値を後工程で使いたいので取り出したいです。
何か良い方法はないでしょうか?



ボタンを使いましょう。
取り出した値はExcel上で貼り付けるだけでセルに値が入りますよ。



ただ貼り付けるだけでいいんですか?
セルに綺麗に値が入るという事でしょうか・・・?



はい。貼り付けるだけでOKです。セルに値が収まります。
ただしちょっとだけ工夫が必要です。式を作り込む必要があります。
回答用の記事を用意しました。今回の最大のポイントはこれです。
以降用意した事例に沿って解説していきます。先に結論(式)が見たい方はこちらをご覧ください。
関連記事
ギャラリーとはどんなコントロールなのかを説明してから事例を使って作り方を解説しています。
ギャラリーの値を検索できるようにしました。非常にかんたんな仕様ですが「使える仕様」になっています。
変数について解説しています。変数が分からない方はこちらの記事にある画像をご覧ください。
関連書籍
PowerAppsを勉強するための書籍はこちらです。(上段が書籍、下段が電子書籍です)


ギャラリーとは
ギャラリーの基本的な仕様、作り方についてはこちらの記事で解説しています。
動画と画像をたくさん使って説明していますので是非ご覧ください。


事例:ギャラリーの値を取り出す方法
具体的な事例を使ってギャラリー内のデータを取り出してExcelに貼り付けてみましょう。
環境
SharePointのリストを含めたPowerAppsの環境を用意します。まずはPowerAppsです。


番号 | 要素 | 説明 |
---|---|---|
1 | テキストラベル | テキスト入力の上に「品名」と表示 |
2 | テキストラベル | ギャラリーの上にある「番号」などの見出し(7つ) |
3 | テキスト入力(ボックス) | キーワード入力でギャラリーの値を絞り込みます |
4 | ギャラリー | SharePoint「d-down」と連携しています |
5 | ボタン | ギャラリーからデータを出力する為の式を用意します |
テキスト入力を使ってギャラリー内を検索する方法は別記事で紹介しています。こちらをご覧ください。
続いてSharePointリストです。PowerApps内のギャラリーのデータソースです。


リストの詳細はテーブルの内容をご覧ください。
番号 | 列名 | データ型 | 備考 |
---|---|---|---|
1 | no | 1行テキスト | 番号 |
2 | name | 1行テキスト | 品名 |
3 | maker | 1行テキスト | メーカー |
4 | unitprice | 数値 | 単価 |
5 | stock | 数値 | 在庫 |
6 | concatenation | 1行テキスト | 番号:品名 |
式
次に式を見ていただきます。ボタンのOnSelectプロパティに書く式はこちらです。
Set(
excelData,
"番号" & Char(9) & "品名" & Char(9) & "メーカー" & Char(9) & "単価" &
Char(9) & "在庫" & Char(9) & "番号:品名" & Char(10) &
Concat(
Gallery1.AllItems,
Concatenate(
'no',
Char(9),
'name',
Char(9),
'maker',
Char(9),
'unitprice',
Char(9),
'stock',
Char(9),
'concatenation' & Char(10)
)
)
);
Copy(excelData);
結果
式が実行されることでデータが取得できています。(各種関数の説明はこちら)
このままExcelに貼り付けてください。ギャラリー内の情報がすべてセルに格納されます。





ギャラリーの情報がすべてセルに収まっている・・・
なぜですか?



答えは式に書いてあるんですけど・・・
・・・やはり説明が必要ですね。
なぜExcelにギャラリーの値が綺麗に格納されるのか?
答えはこちらです。この作業のキーは「タブ」と「改行」です。
Char関数で指示した「タブ」と「改行」を使って変数に格納するデータを作り込んでいるから



Excelはタブで区切られた情報であればセルに値を格納できます。
よってExcelの仕様に合わせてデータを出せばよいという事です。



難しく考えなくて良いという事が分かりました。
式の内容がイメージできるように動画を用意してみました。(約25秒)
各種関数の基礎的な機能が理解出来ている方であればこれで十分理解することができます。
さらに説明が必要な方は記事を読み進めて下さい。各種関数やポイントについて説明を用意しています。
使用する関数
使用する関数はこちらです。用意した式の中でどうやって使われているのかを加筆しておきました。
各種関数の基本的な使い方(パラメータなど)は各関数名に用意されたリンク先の記事をご覧ください。
- Set関数 ・・・ 変数「excelData」に値を格納
- Char関数 ・・・ タブ、改行を指示
- Concat関数 ・・・ ギャラリー全体の情報を取得し1つの文字列を形成
- Concatenate関数 ・・・ ギャラリー内の各情報に対して情報の並べ方を指示
- Copy関数 ・・・ 変数「excelData」の値をコピーする
式の考え方
大枠としてはSet関数を使って変数に値を格納。その後変数の情報をコピーするという流れです。
変数に格納する値の範囲をConcat関数で定義、値の並べ方をConcatenate関数で指示という具合です。
もう少し分かりやすいように各種ポイントを画像にしました。以下テーブルの説明と合わせてご覧ください。


番号 | ポイント | 解説 |
---|---|---|
1 | 変数名 | 「excelData」という変数名です。 この変数に格納された情報を最後にCopy関数で取得します。 |
2 | 見出し群 | Excelに貼り付けた時の見出しとなる情報です。 この後紹介するChar関数等によって作り込まれています。 |
3 | ギャラリー内全てのアイテム | AllItemsは「ギャラリー内の全てのアイテムにアクセスできる」 キーワードだと考えてください。(詳細は省略します) |
4 | SharePointリストの列名 | SharePointリスト「d-down」の各列の列名です。 |
5 | タブ | Char関数のパラメータ9は「タブ」です。 |
6 | 改行 | Char関数のパラメータ10は「改行」です。 |
Concatenate関数の中で各列の情報の間にChar(9)でタブを配置しています。
加えて行末の情報の後にChar(10)を使って改行させます。この状態でExcelに情報を展開します。
式の内容を確認する方法
式を作り込む際に確認しながら作りたいと思いませんか?確認する方法があります。
テキストラベルを1つ用意してTextプロパティに「excelData」と記入します。


これで式が用意されたボタンをクリックするとテキストラベルに値が入ります。


まとめ
ギャラリーについて3つの記事を使って説明を続けてきました。これで一段落です。
- ギャラリーの中にSharePointリストの値を表示させる
- ギャラリー内を検索できるようにする
- ギャラリーの文字列を取り出してExcelに貼り付ける(本記事です)



いろいろなことができるようになりました。
レベルアップできました。



だんだん難しくなりましたが大丈夫のようですね。
関数を組み合わせて使えるようになると初心者卒業です。
引き続き頑張ってください。
記事後半では自分でアプリを作り込む際に式の内容を確認する方法についても紹介しています。
関数を使って式を作り込めるようになったら同時に確認するための環境についても考える様にしましょう。
トータルで環境構築することが出来るようになってくると開発スピード&正確性が上がります。