Excelブックにシート名の一覧を作成する
既存シート名を取得し、重複しない目次シートを作って縦に並べます。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- Windows版ExcelがインストールされたPCで実行します。元ファイルのコピーで試してください。
- シート名の取得は目次追加より前なので、目次自身を一覧へ含めません。この例は初回作成用で、既存の目次を更新するものではありません。
1使うアクション
- アクション 1Excel の起動
- アクション 2すべての Excel ワークシートを取得する
- アクション 3If
- アクション 4新しいワークシートを追加する目次がない場合の内側
- アクション 5アクティブな Excel ワークシートを設定する同じIf内
- アクション 6Excel ワークシートに書き込む見出しをA1へ
- アクション 7変数の設定WriteRow=2
- アクション 8For each同じIf内。SheetNamesを反復
- アクション 9Excel ワークシートに書き込むFor each内
- アクション 10変数を大きくするFor each内。ループのEnd、IfのEndの順に閉じる
- アクション 11Excel を閉じる
表で見る入力と処理結果
架空データ売上・経費・集計の3シートから名前を取得し、新しい目次のA列へ縦に並べます。
Desktop:Excelブック/ワークシート
対象のExcelブック(%ExcelInstance%)/新規の目次シート
以下は手順に沿った期待値です。実際のPower Automate・Excel環境で実行して確認した結果ではありません。セルや行の着目箇所には「●」を付けています。
処理前:ブックのシート一覧
| 順番 | シート名 |
|---|---|
| 1 | 売上 |
| 2 | 経費 |
| 3 | 集計 |
目次追加前に%SheetNames%を取得し、「目次」を含まない場合だけ先頭へ追加。A1=シート名、%WriteRow%=2から%CurrentSheet%をA列へ書きます。
作成後:目次シートの内容
| 行 | A:シート名 |
|---|---|
| 2 | ● 売上 |
| 3 | ● 経費 |
| 4 | ● 集計 |
保存後:ブックのシート一覧
| 順番 | シート名 |
|---|---|
| 1 | ● 目次 |
| 2 | 売上 |
| 3 | 経費 |
| 4 | 集計 |
目次のA2~A4に3つのシート名が入ります。目次を追加する前の一覧を使うため、目次自身は載りません。
- 既に目次シートがある場合は追加も書き換えも行いません。この例は初回作成用です。
- 対象ブックのコピーで試してから、保存を伴う実行を行ってください。
図で見る処理のイメージ
概念図既存シート名を取得し、重複しない目次シートを作って縦に並べます。
元ブック
売上/経費/集計
取得
3つのシート名をリストへ
作成
目次のA2から順に書く
保存
目次/売上/経費/集計
書き込む前に目次を明示的にアクティブ化します。
図は処理の流れを示した例です。実際の画面や実行結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する5ステップの設定と確認方法
- 1
対象ブックを開き %ExcelInstance% にします。すべてのExcelワークシートを取得するで %SheetNames% を取得します。
- 2
Ifで %SheetNames% が「目次」を含まないと判定します。内側に「目次」を先頭へ追加し、目次シートを名前でアクティブにする処理を置きます。
- 3
If内でA1に「シート名」を書き、変数の設定で %WriteRow% を数値2にします。
- 4
同じIf内のFor eachで %SheetNames% の各要素を %CurrentSheet% に受け取り、目次のA列・%WriteRow% 行に書きます。続けてWriteRowを1増やします。
- 5
For eachとIfをそれぞれEndで閉じた後、Excelを保存して閉じます。目次が既にある場合は何も書き換えない例です。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月11日