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

このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています
  • URLをコピーしました!

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

PowerAppsのギャラリーの値は綺麗に整列した状態で表示されています。非常に見やすいです。

表形式で整っている為「データを他の仕事でも使いたい」という要望をたくさんいただきます。

Aさん

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

Plat(プラット)

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

Aさん

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

Plat(プラット)

はい。貼り付けるだけでOKです。セルに値が収まります。
ただしちょっとだけ工夫が必要です。式を作り込む必要があります。

回答用の記事を用意しました。今回の最大のポイントはこれです。

コピーした値はExcelに貼り付けるだけでセル内に綺麗に格納されます

以降用意した事例に沿って解説していきます。先に結論(式)が見たい方はこちらをご覧ください。

関連記事

ギャラリーとはどんなコントロールなのかを説明してから事例を使って作り方を解説しています。

ギャラリーの値を検索できるようにしました。非常にかんたんな仕様ですが「使える仕様」になっています。

変数について解説しています。変数が分からない方はこちらの記事にある画像をご覧ください。

関連書籍

PowerAppsを勉強するための書籍はこちらです。(上段が書籍、下段が電子書籍です)

おすすめ書籍はこちら
\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング
目次(リンク機能付き)

ギャラリーとは

ギャラリーの基本的な仕様、作り方についてはこちらの記事で解説しています。

動画と画像をたくさん使って説明していますので是非ご覧ください。

ギャラリーの基礎がわかる

事例:ギャラリーの値を取り出す方法

具体的な事例を使ってギャラリー内のデータを取り出してExcelに貼り付けてみましょう。

環境

SharePointのリストを含めたPowerAppsの環境を用意します。まずはPowerAppsです。

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

1番のテキストラベルと3番のテキスト入力は今回使用しません

テキスト入力を使ってギャラリー内を検索する方法は別記事で紹介しています。こちらをご覧ください。

続いてSharePointリストです。PowerApps内のギャラリーのデータソースです。

SharePointのリスト

リストの詳細はテーブルの内容をご覧ください。

番号列名データ型備考
1no1行テキスト番号
2name1行テキスト品名
3maker1行テキストメーカー
4unitprice数値単価
5stock数値在庫
6concatenation1行テキスト番号:品名

次に式を見ていただきます。ボタンの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に貼り付ける
セルF5を起点にデータを貼り付けました(セル幅は後で調整してください)
Aさん

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

Plat(プラット)

答えは式に書いてあるんですけど・・・
・・・やはり説明が必要ですね。

なぜExcelにギャラリーの値が綺麗に格納されるのか?

答えはこちらです。この作業のキーは「タブ」と「改行」です。

Char関数で指示した「タブ」と「改行」を使って変数に格納するデータを作り込んでいるから

Plat(プラット)

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

Aさん

難しく考えなくて良いという事が分かりました。

式の内容がイメージできるように動画を用意してみました。(約25秒)

各種関数の基礎的な機能が理解出来ている方であればこれで十分理解することができます。

さらに説明が必要な方は記事を読み進めて下さい。各種関数やポイントについて説明を用意しています。

使用する関数

使用する関数はこちらです。用意した式の中でどうやって使われているのかを加筆しておきました。

各種関数の基本的な使い方(パラメータなど)は各関数名に用意されたリンク先の記事をご覧ください。

  • Set関数 ・・・ 変数「excelData」に値を格納
  • Char関数 ・・・ タブ、改行を指示
  • Concat関数 ・・・ ギャラリー全体の情報を取得し1つの文字列を形成
  • Concatenate関数 ・・・ ギャラリー内の各情報に対して情報の並べ方を指示
  • Copy関数 ・・・ 変数「excelData」の値をコピーする

式の考え方

大枠としてはSet関数を使って変数に値を格納。その後変数の情報をコピーするという流れです。

変数に格納する値の範囲をConcat関数で定義、値の並べ方をConcatenate関数で指示という具合です。

もう少し分かりやすいように各種ポイントを画像にしました。以下テーブルの説明と合わせてご覧ください。

ボタンのOnSelectプロパティに書いた式と説明
&(アンパサンド)が多いので少し長い式になっていますがやっている事は非常にシンプルです
番号ポイント解説
1変数名「excelData」という変数名です。
この変数に格納された情報を最後にCopy関数で取得します。
2見出し群Excelに貼り付けた時の見出しとなる情報です。
この後紹介するChar関数等によって作り込まれています。
3ギャラリー内全てのアイテムAllItemsは「ギャラリー内の全てのアイテムにアクセスできる」
キーワードだと考えてください。(詳細は省略します)
4SharePointリストの列名SharePointリスト「d-down」の各列の列名です。
5タブChar関数のパラメータ9は「タブ」です。
6改行Char関数のパラメータ10は「改行」です。

Concatenate関数の中で各列の情報の間にChar(9)でタブを配置しています。

加えて行末の情報の後にChar(10)を使って改行させます。この状態でExcelに情報を展開します。

作り込まれたデータ内のタブと改行がうまく機能しセル内に情報が格納されることになります

式の内容を確認する方法

式を作り込む際に確認しながら作りたいと思いませんか?確認する方法があります。

テキストラベルを1つ用意してTextプロパティに「excelData」と記入します。

式の結果をPowerApps内で確認する方法
タブが入っているのか?改行が出来ているのかを確認することができます

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

問題無ければ最後にExcelで確認という作業にすることで工数を大幅に削減できます

\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング

まとめ

ギャラリーについて3つの記事を使って説明を続けてきました。これで一段落です。

Aさん

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

Plat(プラット)

だんだん難しくなりましたが大丈夫のようですね。
関数を組み合わせて使えるようになると初心者卒業です。
引き続き頑張ってください。

記事後半では自分でアプリを作り込む際に式の内容を確認する方法についても紹介しています。

関数を使って式を作り込めるようになったら同時に確認するための環境についても考える様にしましょう。

トータルで環境構築することが出来るようになってくると開発スピード&正確性が上がります。

よかったらシェアしてください!
  • URLをコピーしました!