# 【Power Apps】生成AI分析が捗る！ボタン一つでデータを「テーブル形式」でコピーする実装テクニック

- 公開日: 2025-11-26
- カテゴリ: Power Apps
- 著者: tan（@kama_bizdev）
- URL: https://flow-with-tech.com/powerapps-copy-data-for-generative-ai/
- サイト: 改善紀 — 好奇心の赴くままに。

---

業務アプリで蓄積したデータを「ちょっと生成AIに分析させたい」「傾向を生成AIに探らせたい」と思ったことはありませんか？

わざわざCSVエクスポート機能を作ったり、Excelファイルをダウンロードして添付するのは少し手間ですよね。 今回は、Power Appsの画面上から**ボタン一つで、Excelや生成AIにそのまま貼り付けられる形式でデータをクリップボードにコピーする方法**を紹介します。

![](https://flow-with-tech.com/media/wp/2025/11/image-1.png)

### 実現したいこと

- Power Apps 内のデータをフィルタリングして取得
- ヘッダー付きの「表形式（タブ区切り）」テキストとしてクリップボードにコピー
- 生成AI のプロンプト欄にペーストして活用

![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-26-at-21.32.15@2x.png)

### 実装コード

ボタンの `OnSelect` プロパティに以下のコードを設定します。 ポイントは `Char(9)`（タブ文字）と `Char(10)`（改行文字）の使い方です。

**コード**

```js
Copy(
    // 1. ヘッダー行の作成（タブ区切り）
    "ProjectName" & Char(9) &
    "CategoryName" & Char(9) &
    "ActionName" & Char(9) &
    "Notes" & Char(9) &
    "StartTime" & Char(9) &
    "EndTime" & Char(9) &
    "Duration" & Char(10) &

    // 2. データ行の連結
    Concat(
        // 直近N日分のデータを抽出して開始時間順にソート
        Sort(
            Filter(
                WorkLog_Transaction,
                StartTime >= DateAdd(Today(), -Value(txtLastDate.Text), TimeUnit.Days)
            ),
            StartTime,
            SortOrder.Ascending
        ),

        // 各カラムをタブ区切りで結合
        ProjectName & Char(9) &
        CategoryName & Char(9) &
        ActionName & Char(9) &
        Notes & Char(9) &
        Text(StartTime, "yyyy/mm/dd hh:mm") & Char(9) &
        Text(EndTime, "yyyy/mm/dd hh:mm") & Char(9) &
        Duration,

        // 行末に改行コードを入れる
        Char(10)
    )
);

Notify("データ（所要時間付き）をコピーしました", NotificationType.Success)
```

### 技術的な解説ポイント

#### 1. `Copy()` 関数の活用

Power Apps の `Copy()` 関数を使うと、指定したテキストをデバイスのクリップボードに送ることができます。これにより、ユーザーは「Ctrl + V」だけでデータを他のアプリに持ち出せます。

#### 2. `Char(9)` でExcelライクな挙動に

ここが最大のポイントです。 文字列の連結に `Char(9)` を使用しています。これは ASCIIコードで **「水平タブ」** を意味します。

- **Excelに貼る場合：** タブが自動的に「列」の区切りとして認識され、綺麗にセルに入ります。
- **生成AIに貼る場合：** AIもタブ区切りテキストを「表データ」として認識しやすいため、構造化データとしてスムーズに解析してくれます。

#### 3. `Concat` で一括文字列化

`ForAll` ではなく `Concat` を使うことで、テーブル内の全レコードを単一の長い文字列（テキストの塊）に変換しています。ループ処理の中で各レコードの末尾に `Char(10)`（改行）を付与することで、行ごとのデータ整形を行っています。

#### 4. 日付の文字列化

`Text(StartTime, "yyyy/mm/dd hh:mm")` のように明示的にフォーマットを指定しています。AIに渡す際、ロケールに依存しない明確な書式にしておくことで、解析ミス（月と日の取り違えなど）を防ぐことができます。

### 活用シナリオ：生成AIへのプロンプト例

このボタンでコピーしたデータを、生成AIに以下のように投げると効果的です。

> **ユーザー:** 以下のデータは私の作業ログです。時間の使い方の傾向を分析し、効率化のためのアドバイスを3点挙げてください。
>
> [ここで Ctrl + V （コピーしたデータを貼り付け）]

### まとめ

Power Apps はデータの入力だけでなく、データの「利活用」への入り口としても優秀です。 複雑な出力機能を実装しなくても、テキスト処理の工夫だけで、AI連携が劇的にスムーズになります。ぜひ試してみてください。
