【業務効率化の王道】Excel自動化フローまとめ10選

  • URLをコピーしました!

①行数が変わるExcelデータを自動で読み取る方法

目次

1. 使うExcelファイルの準備

まずは練習用のExcelを用意します。
デスクトップなどに以下のようなシートを作ってください。

No氏名売上金額
1佐藤15000
2鈴木22000
3田中18000

※ 行数は日によって変わってOKです。
ファイル名は「売上一覧.xlsx」とします。


2. フロー全体の流れ

このフローでやることは次の通りです。

  1. Excelを開く
  2. データ範囲を読み取る
  3. 各行に対して繰り返す
  4. 各行の中の値を取り出して、メッセージで表示する

これを作るだけで、「行数が変わるExcelデータを自動で扱う」基礎が完全に理解できます。


3. 実際の手順(ステップごとに詳しく解説)

✅ ステップ1:Excelファイルを開く

  1. PADを起動します。
  2. 「+新しいフロー」をクリックし、
     フロー名を「Excel読み取りテスト」と入力 → 作成。
  3. 左側のアクション検索欄に「Excel」と入力。
  4. 「Excelワークシートを起動」アクションをドラッグします。
  5. 「ドキュメントパス」に、先ほど作成した「売上一覧.xlsx」を指定します。

👉 ポイント:「Excelインスタンスを保存」には「ExcelInstance」と名前を付けておくと後で使いやすいです。


✅ ステップ2:データ範囲を読み取る

  1. 「Excelワークシートから範囲を読み取る」アクションを追加します。
  2. 「Excelインスタンス」には「ExcelInstance」を選択。
  3. 「範囲」欄は空欄でOK(空欄にすると自動で使用範囲全体を読み取ります)。
  4. 「読み取ったデータを格納する変数」には「ExcelData」と入力します。

👉 これで、Excelのすべてのデータが「ExcelData」という変数に入ります。


✅ ステップ3:各行に対してループする

  1. 検索欄に「繰り返し」と入力。
  2. 「各項目に対して繰り返す」アクションをドラッグします。
  3. 「リスト」欄に「ExcelData」を入力します。
  4. 「現在の項目を保存する変数名」には「CurrentRow」と入力。

これでExcelの1行目から順に、自動で処理が繰り返されます。


✅ ステップ4:行の値を取り出して使う

  1. 「メッセージを表示」アクションを追加します。
  2. メッセージの内容に次のように入力します。
氏名: %CurrentRow[1]%
売上金額: %CurrentRow[2]%

👉 ポイント
Excelの1列目は CurrentRow[0]、2列目は CurrentRow[1]、3列目は CurrentRow[2] のようにインデックスで指定します。
(列番号は0から始まるので注意!)


✅ ステップ5:Excelを閉じる

最後にExcelを閉じる処理を追加します。

  1. 「Excelを閉じる」アクションを追加。
  2. 「Excelインスタンス」に「ExcelInstance」を指定。
  3. 「変更を保存する」を選択しておくと安心です。

4. フローの動作確認

すべて設定できたら、右上の「▶ 実行」をクリック!

画面に次のようにメッセージが順に表示されれば成功です👇

氏名: 佐藤
売上金額: 15000
氏名: 鈴木
売上金額: 22000
氏名: 田中
売上金額: 18000

Excelの行数を増減させても、ちゃんと自動で全部読み取れていればOKです!


5. よくあるエラーと対処法

エラー内容原因対処法
「Excelインスタンスが存在しません」Excelを閉じる前にフローが止まった「Excelを閉じる」アクションの順序を最後にする
「範囲が見つかりません」ファイルパスが間違っているExcelファイルのフルパスを再指定する
「CurrentRow[1]が存在しません」空行や列不足Excelの空白行を削除する or 条件分岐でスキップ処理を入れる

②Power Automate DesktopでVLOOKUPを完全自動化!

1. 準備するExcelファイル

🔹 ファイル①:照合元(顧客一覧.xlsx)

顧客ID顧客名売上金額
A001佐藤15000
A002鈴木18000
A003田中21000

ファイル名:顧客一覧.xlsx
場所:デスクトップ上でOKです。


🔹 ファイル②:照合先(請求リスト.xlsx)

顧客ID請求日請求金額
A0012025/10/01(ここに売上金額を自動転記)
A0032025/10/01(ここに売上金額を自動転記)

ファイル名:請求リスト.xlsx
こちらの顧客IDをもとに、顧客一覧ファイルから「売上金額」を探して転記する、というのが今回の自動化の目的です。


2. フロー全体の考え方

この自動化の流れは次の通りです👇

  1. 顧客一覧.xlsx(参照元)を読み取る
  2. 請求リスト.xlsx(転記先)を開く
  3. 各行の顧客IDを取得
  4. 顧客一覧の中から一致するIDを検索
  5. 一致したら、売上金額を請求リストの同じ行に書き込む
  6. 保存・終了

つまり、「Excel間の照合(VLOOKUP)」を自動で行うイメージです。


3. 実際の操作手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを開く
  2. 「+新しいフロー」 → 名前を「VLOOKUP自動化」に設定
  3. 作成をクリック

✅ ステップ2:顧客一覧ファイルを開く

  1. 検索欄に「Excel」と入力
  2. 「Excelワークシートを起動」アクションをドラッグ
  3. ファイルパスに「顧客一覧.xlsx」を指定
  4. 「Excelインスタンスを保存する」に Excel顧客 と入力

✅ ステップ3:顧客一覧のデータを読み取る

  1. 「Excelワークシートから範囲を読み取る」アクションを追加
  2. Excelインスタンス → Excel顧客
  3. 範囲 → 空欄(自動で全範囲)
  4. 出力変数名 → 顧客データ

👉 これで顧客一覧が 顧客データ に丸ごと入ります。


✅ ステップ4:請求リストファイルを開く

  1. もう一度「Excelワークシートを起動」を追加
  2. ファイルパス → 請求リスト.xlsx
  3. Excelインスタンス名 → Excel請求

✅ ステップ5:請求リストのデータを読み取る

  1. 「Excelワークシートから範囲を読み取る」
  2. Excelインスタンス → Excel請求
  3. 範囲 → 空欄
  4. 出力変数名 → 請求データ

✅ ステップ6:ループ処理で顧客IDを1件ずつ処理

  1. 「各項目に対して繰り返す」アクションを追加
  2. リスト → 請求データ
  3. 現在の項目変数名 → 請求行

これで請求リストの1行ずつを自動で処理します。


✅ ステップ7:顧客一覧から一致するIDを探す

ループの中に、さらに「条件分岐」と「繰り返し」を入れます。

  1. 「各項目に対して繰り返す」アクションを追加(ネスト)
     → リスト:顧客データ
     → 現在の項目変数名:顧客行
  2. 「条件分岐」をネスト内に追加。
     条件に以下を入力します👇
請求行[0] = 顧客行[0]

👉 これは「顧客ID(1列目)が一致したら」を意味します。


✅ ステップ8:一致したら売上金額を転記

  1. 条件が「真」の分岐の中に「Excelワークシートに書き込み」アクションを追加。
  2. Excelインスタンス → Excel請求
  3. 書き込み先セル → 例えば C%LoopIndex+2%(C列、2行目以降を動的に)
  4. 書き込む値 → %顧客行[2]%(顧客一覧の売上金額)

👉 これでVLOOKUPと同じように、顧客IDに対応する金額を自動転記できます!


✅ ステップ9:Excelを保存・閉じる

  1. 「Excelを保存」→ Excel請求
  2. 「Excelを閉じる」→ 両方のExcelインスタンスを閉じる

4. 応用ポイント:完全一致/部分一致の使い分け

処理方法条件式説明
完全一致(通常のVLOOKUPと同じ)請求行[0] = 顧客行[0]一致した行だけ転記
部分一致(IDの一部が合えばOK)請求行[0] in 顧客行[0]類似文字を含む場合にも対応

5. よくあるエラーと対処法

エラー内容原因対処法
範囲が見つかりませんExcelファイルが開けないファイルパスを絶対パス(例:C:\Users\〜)で指定
CurrentRow[2]が存在しませんExcelの列が足りない顧客一覧の列構造を確認する
インスタンスが見つかりませんExcel閉じ処理の順序Excel顧客 → Excel請求 の順に閉じる

③複数Excelファイルをまとめて開いて処理する方法

1. 準備するフォルダとExcelファイル

まず、次のような構成を用意してください👇

📁 C:\Users\あなたの名前\Documents\売上フォルダ

その中に以下のような複数Excelを入れます:

売上レポート_2025-10-01.xlsx  
売上レポート_2025-10-02.xlsx  
売上レポート_2025-10-03.xlsx  

各ファイルには、こんな感じのシートがあると仮定します:

日付店舗名売上金額
2025/10/01東京店150000
2025/10/01名古屋店132000

目的は、これらのファイルを自動で順番に開いて、
売上データを読み取る(または集計)処理を自動化することです。


2. フロー全体のイメージ

今回の自動化フローはこうなります👇

  1. 対象フォルダを指定
  2. フォルダ内のファイル名をすべて取得
  3. ファイルごとに繰り返し処理
  4. Excelを開いてデータを読み取る
  5. 必要に応じて結果をまとめる
  6. Excelを閉じる

これが理解できれば、フォルダ単位の自動処理 がすべてできるようになります。


3. 実際の操作手順(完全ステップ解説)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを開く
  2. 「+新しいフロー」をクリック
  3. フロー名を「複数Excel処理」と入力して作成します。

✅ ステップ2:対象フォルダを指定する

  1. 左側の検索欄に「フォルダー」と入力
  2. 「フォルダー内のファイルを取得」アクションをドラッグ
  3. 「フォルダーパス」に以下のように入力します:
C:\Users\あなたの名前\Documents\売上フォルダ
  1. 出力変数名 → ファイル一覧

👉 このアクションで、フォルダ内の全ファイル情報が ファイル一覧 に入ります。


✅ ステップ3:ファイルごとに繰り返すループを設定

  1. 検索欄に「繰り返し」と入力
  2. 「各項目に対して繰り返す」アクションをドラッグ
  3. 「リスト」に ファイル一覧 と入力
  4. 「現在の項目を保存する変数名」に 現在のファイル と入力

👉 これで、フォルダ内のすべてのExcelファイルを順番に処理できるようになります。


✅ ステップ4:Excelファイルを開く

ループの中に次のアクションを追加します。

  1. 「Excelワークシートを起動」アクションを追加
  2. 「ドキュメントパス」に %現在のファイル['Path']% を入力
  3. 「Excelインスタンスを保存する」には ExcelInstance と入力

👉 %現在のファイル['Path']% で、今ループ中のExcelファイルのフルパスを指定できます。
これが「フォルダ内のファイルを順番に開く」ためのポイントです!


✅ ステップ5:データを読み取る

  1. 「Excelワークシートから範囲を読み取る」アクションを追加
  2. Excelインスタンス → ExcelInstance
  3. 範囲は空欄でOK(自動検出)
  4. 出力変数名 → ExcelData

👉 これで1つのExcelのデータが変数 ExcelData に格納されます。
必要に応じて、別のExcelやCSVに書き出していくことも可能です。


✅ ステップ6:Excelを閉じる

  1. 「Excelを閉じる」アクションを追加
  2. Excelインスタンス → ExcelInstance
  3. 「変更を保存する」チェックをオン

これでファイルを開く→処理→閉じるまでが自動で完結します。


✅ ステップ7:全体を確認して実行

フロー全体は次のような構成になっていればOKです👇

1️⃣ フォルダー内のファイルを取得
2️⃣ 各項目に対して繰り返す
 ├ Excelを起動
 ├ 範囲を読み取る
 └ Excelを閉じる

最後に「▶実行」ボタンを押してテスト。
フォルダ内のExcelが順に開いて閉じる動作が見えたら成功です!


4. よくあるトラブルと対処法

トラブル原因解決策
ファイルを開くときに止まるExcelがすでにバックグラウンドで開いているタスクマネージャーでExcelをすべて終了して再実行
ファイルが開かないパス指定が間違っている%現在のファイル['Path']% が正しいか確認
Excelが閉じない閉じ処理がループの外にある「Excelを閉じる」をループ内に移動
処理対象外のファイル(例:CSV)まで開くフォルダー内にExcel以外のファイルがある条件分岐で「.xlsx」だけ処理するように設定

④テンプレートExcelを自動でコピー・保存するフロー

1. テンプレートファイルを準備

まず、Power Automate Desktopで使用するExcelテンプレートを用意しましょう。

📄 テンプレートファイル例:

ファイル名:請求書_テンプレート.xlsx
保存場所:

C:\Users\あなたの名前\Documents\テンプレート

中身はシンプルでOKです。
例:

請求日顧客名金額担当者
(自動入力予定)(自動入力予定)(自動入力予定)(自動入力予定)

2. フロー全体の考え方

この自動化の流れは次のとおり👇

  1. テンプレートファイルのパスを指定
  2. 新しいファイル名(例:請求書_2025-10-21.xlsx)を作成
  3. テンプレートをコピーして新しいファイルを生成
  4. 必要ならExcelを開いてデータを書き込み
  5. 保存して閉じる

これが理解できれば、どんな「日付付き・顧客別」ファイルも自動で作れるようになります。


3. 実際の作成手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」をクリック
  3. 名前を「Excel自動生成」と入力して作成

✅ ステップ2:テンプレートファイルと保存先を指定

  1. 検索欄に「ファイル」と入力
  2. 「ファイルをコピー」アクションをドラッグ
  3. 「元のファイルパス」に以下を入力:
C:\Users\あなたの名前\Documents\テンプレート\請求書_テンプレート.xlsx
  1. 「コピー先のパス」には、一時的に固定名でもOKです(後ほど動的に変更します):
C:\Users\あなたの名前\Documents\出力\請求書_作成中.xlsx

✅ ステップ3:日付付きファイル名を作る(動的命名)

  1. 「現在の日付を取得」アクションを追加
  2. 出力変数名:今日の日付
  3. 「変数を設定」アクションを追加し、
    名前:保存ファイル名
    値:
C:\Users\あなたの名前\Documents\出力\請求書_%FormatDateTime(今日の日付, 'yyyy-MM-dd')%.xlsx

👉 この1行で、
 例:「請求書_2025-10-21.xlsx」 のように日付付きファイル名を自動生成できます。


✅ ステップ4:テンプレートをコピーして保存

  1. もう一度「ファイルをコピー」アクションを追加
  2. 「元のファイルパス」→ テンプレートファイル
  3. 「コピー先のパス」→ %保存ファイル名%

✅ これでテンプレートが自動的に複製され、
指定したフォルダに新しいファイルとして保存されます。


✅ ステップ5:Excelを開いてデータを書き込む(任意)

ここからは任意の自動入力処理です。
今回は例として、請求日と担当者名を自動で書き込んでみましょう。

  1. 「Excelワークシートを起動」アクション
     → ドキュメントパスに %保存ファイル名% を入力
     → Excelインスタンス名:ExcelInstance
  2. 「Excelに書き込み」アクションを追加
     - セルA2 → %FormatDateTime(今日の日付, 'yyyy/MM/dd')%
     - セルB2 → "佐藤商事"
     - セルD2 → "担当:山田"
  3. 「Excelを保存」アクション
  4. 「Excelを閉じる」アクション

4. 応用:ファイル名に顧客名を自動付与する

もしExcelや別のシステムから顧客名を取得しているなら、
ファイル名に自動で組み込むことも可能です。

例:

変数 顧客名 = "佐藤商事"
変数 保存ファイル名 = "C:\Users\あなたの名前\Documents\出力\請求書_" & 顧客名 & "_" & FormatDateTime(今日の日付, 'yyyy-MM-dd') & ".xlsx"

結果:
📄 請求書_佐藤商事_2025-10-21.xlsx が自動で生成されます!


5. よくあるトラブルと対処法

トラブル原因解決策
「ファイルが存在します」エラー同じ名前のファイルがあるコピー前に「ファイルが存在する場合削除」アクションを入れる
Excelが開かないパスに全角文字やスペースがあるダブルクォーテーションで囲む or 半角英数フォルダを使う
日付が意図した形式で出ないロケール設定の違いFormatDateTime(今日の日付, 'yyyy-MM-dd') を使うと安定

⑤指定セルへ自動入力するフロー

1. 事前準備(Excelファイルの作成)

デスクトップに次のようなExcelファイルを作っておきましょう。

📄 ファイル名:入力テスト.xlsx
📍 場所:

C:\Users\あなたの名前\Documents\入力テスト.xlsx

中身は次のような簡単な表でOKです👇

日付顧客名金額
(ここに自動で入力)(ここに自動で入力)(ここに自動で入力)

2. フロー全体の流れ

今回の自動化の処理は以下のとおり👇

  1. Excelを起動してファイルを開く
  2. 指定セル(例:A2, B2, C2)にデータを書き込む
  3. 保存して閉じる

ここで学ぶ「セル指定」「変数利用」「保存処理」は、あらゆるExcel自動化の基本になります。


3. 実際の手順(ステップごとに解説)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを開く
  2. 「+新しいフロー」をクリック
  3. フロー名に「Excelセル書き込み」と入力
  4. 作成ボタンを押します。

✅ ステップ2:Excelを起動してファイルを開く

  1. 検索欄に「Excel」と入力
  2. 「Excelワークシートを起動」アクションをドラッグ
  3. 設定欄で以下のように指定👇
  • 「ドキュメントパス」 → C:\Users\あなたの名前\Documents\入力テスト.xlsx
  • 「Excelインスタンスを保存する」 → ExcelInstance

👉 これでPADがExcelを開いて操作できるようになります。


✅ ステップ3:セルに文字を書き込む

  1. 「Excelワークシートに書き込み」アクションを追加
  2. 各項目を以下のように設定👇
設定項目入力例
ExcelインスタンスExcelInstance
書き込むセルA2
書き込む値%FormatDateTime(Now(), 'yyyy/MM/dd')%

👉 A2セルに「今日の日付」を自動で入力します。


✅ ステップ4:別のセルに値を入力する

同じく「Excelに書き込み」アクションを追加していきます。

  • セルB2 → "株式会社サンプル商事"
  • セルC2 → 15000

これで、顧客名と金額も自動で入力されます。


✅ ステップ5:Excelを保存して閉じる

  1. 「Excelを保存」アクションを追加
     → Excelインスタンス:ExcelInstance
  2. 「Excelを閉じる」アクションを追加
     → Excelインスタンス:ExcelInstance

これで、開く→入力→保存→閉じるの一連の動きが自動化されました!


4. 動的にセルを変える方法(変数応用)

ここからが応用テクです。
「毎回A2じゃなくて、データ数に応じて次の行に書きたい」場合は、変数を使いましょう。

💡 例:行番号を変数で指定

  1. 「変数を設定」アクションを追加
     → 変数名:行番号
     → 値:2
  2. 書き込みアクションのセル欄に次のように入力👇
"A" & 行番号
  1. 書き込み後に 行番号 = 行番号 + 1 とすれば、
     次のループで自動的に「A3」「A4」…と入力先が変わります。

👉 この仕組みが「行数が変わるデータに対応する基本構造」です!


5. よくあるトラブルと対処法

トラブル内容原因解決策
セルに値が書き込まれないExcelが開かれていない「Excelを起動」アクションを最初に追加する
書き込みセルの指定ミス“A2”のように文字列にしないとエラー"A2" のようにダブルクォーテーションで囲む
数値が文字として扱われる書式設定の影響Excel側で列の書式を「数値」に変更
ファイルが上書き保存されない保存処理の抜け「Excelを保存」を明示的に追加する

⑥バックグラウンドでExcel更新!表示しないままデータを処理する方法

1. 事前準備(Excelファイルを用意)

まずは、実験用に以下のExcelファイルを準備します👇

📄 ファイル名:バックグラウンド更新テスト.xlsx
📍 保存場所:

C:\Users\あなたの名前\Documents\バックグラウンド更新テスト.xlsx

中身はこのような簡単な表でOKです:

ID名前ステータス
1佐藤未処理
2鈴木未処理
3田中未処理

今回は、この「ステータス」を自動で「完了」に変更して保存する流れを作ります。


2. フロー全体の概要

バックグラウンド更新の全体像は次のとおり👇

  1. Excelアプリを非表示で起動
  2. ファイルを開く
  3. 特定セル(例:C2〜C4)を更新
  4. 保存して閉じる

ここで大事なのは「Excelを表示せずに起動」設定です。
これにより、実際の画面を一切開かずに高速処理できます。


3. 実際の操作手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」をクリック
  3. フロー名を「Excelバックグラウンド更新」と入力して作成

✅ ステップ2:Excelを非表示で起動

  1. 左の検索欄に「Excel」と入力
  2. 「Excelワークシートを起動」アクションをドラッグ
  3. 以下のように設定します👇
設定項目入力内容
ドキュメントパスC:\Users\あなたの名前\Documents\バックグラウンド更新テスト.xlsx
Excelを表示する✅ チェックを外す(ここが重要!)
Excelインスタンスを保存ExcelInstance

👉 この設定で、Excelを画面に表示せずにバックグラウンドで起動できます。


✅ ステップ3:データを書き込む

  1. 「Excelワークシートに書き込み」アクションを追加
  2. 設定内容は次の通り👇
設定項目入力内容
ExcelインスタンスExcelInstance
書き込むセルC2
書き込む値"完了"

同様に、C3 と C4 にも「完了」と入力するアクションを追加しておきましょう。

💡ワンポイント
大量データの場合は、ループ処理(繰り返し)を使うと効率的です。
例:

各行に対して繰り返す → C列の値を順番に更新

✅ ステップ4:Excelを保存して閉じる

  1. 「Excelを保存」アクションを追加
     → Excelインスタンス:ExcelInstance
  2. 「Excelを閉じる」アクションを追加
     → Excelインスタンス:ExcelInstance
     → 「Excelを強制終了する」はチェックしない(通常終了でOK)

✅ ステップ5:動作確認

  1. フローを実行
  2. Excelが開かないまま、数秒後に完了メッセージが表示されます。
  3. Excelファイルを手動で開くと…
ID名前ステータス
1佐藤✅完了
2鈴木✅完了
3田中✅完了

👉 これで「開かずに更新」が成功です!


4. 応用:複数セルをまとめて更新する

複数の値をまとめて更新したい場合は、「範囲に書き込み」アクションを使います。

🔹 手順例:

  1. 「Excelワークシートに範囲を書き込む」アクションを追加
  2. 書き込みセル範囲 → C2:C4
  3. 書き込む値 → ["完了","完了","完了"]

👉 このように配列を指定すれば、3行分を一括更新できます。

または、ループ処理と変数を組み合わせて、動的にデータを入れることも可能です。


5. よくあるトラブルと解決策

トラブル内容原因対策
Excelが開いてしまう「Excelを表示する」にチェックが残っているチェックを外す
ファイルがロックされる同名のExcelが既に開いている実行前にExcelをすべて閉じる or 強制終了設定をON
値が書き込まれないExcelが保護モードで開かれているファイルを信頼済みフォルダに置く
実行速度が遅い範囲ごと書き込まずに1セルずつ処理している「範囲書き込み」か「配列変数」でまとめて処理

⑦Excelの内容を自動でOutlookメールに挿入する方法

1. 事前準備(ExcelとOutlook)

まず、練習用のExcelファイルを用意します👇

📄 ファイル名:日次売上.xlsx
📍 保存場所:

C:\Users\あなたの名前\Documents\日次売上.xlsx

中身はこんな感じでOKです👇

店舗名売上金額担当者
東京店150000佐藤
名古屋店132000鈴木
大阪店98000田中

このデータを、メール本文に自動で転記します。


2. フロー全体の概要

フローの構成は次のとおり👇

  1. Excelを開いてデータを読み取る
  2. 読み取ったデータを整形(表形式のテキストに変換)
  3. Outlookでメールを作成
  4. 本文にデータを挿入して自動送信

ここでのポイントは、「Excelデータを1つの文字列に変換して本文に貼り付ける」 こと。
この変数変換ができると、応用の幅が一気に広がります!


3. 実際の操作手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」→ フロー名を「Excelメール自動転記」と入力して作成

✅ ステップ2:Excelデータを読み取る

  1. 検索欄に「Excel」と入力
  2. 「Excelワークシートを起動」アクションを追加
     → ドキュメントパス:
       C:\Users\あなたの名前\Documents\日次売上.xlsx  
     → Excelインスタンス名:ExcelInstance
  3. 「Excelワークシートから範囲を読み取る」アクションを追加
     → Excelインスタンス:ExcelInstance
     → 範囲:空欄(自動で使用範囲を取得)
     → 出力変数名:売上データ
  4. 「Excelを閉じる」アクションを追加
     → Excelインスタンス:ExcelInstance
     → 変更を保存する:オン

✅ ステップ3:データを文字列に整形する

このままでは 売上データ は「テーブル形式(リストのリスト)」です。
そのため、ループを使って本文用のテキストを作ります。

  1. 「変数を設定」アクションを追加
     → 変数名:メール本文
     → 値:"【本日の売上一覧】" & vbCrLf & vbCrLf
  2. 「各項目に対して繰り返す」アクションを追加
     → リスト:売上データ
     → 現在の項目:
  3. ループ内に「変数に追加」アクションを追加
     → 変数:メール本文
     → 値:
行[0] & ":" & 行[1] & "円(担当:" & 行[2] & ")" & vbCrLf

👉 これで、

東京店:150000円(担当:佐藤)
名古屋店:132000円(担当:鈴木)
大阪店:98000円(担当:田中)

という形式のテキストが メール本文 に生成されます。


✅ ステップ4:Outlookメールを作成

  1. 検索欄に「Outlook」と入力
  2. 「新しいメールメッセージを作成」アクションを追加
     → 送信先:"team@example.com"(自分のメールでテスト可)
     → 件名:"【自動送信】本日の売上報告"
     → 本文:%メール本文%
     → メールアカウント:既定のOutlookアカウント
  3. 「メールメッセージを送信」アクションを追加

これで、Excelのデータを本文に自動で転記し、送信できるフローが完成です🎉


4. 応用:複数行データをHTML形式で送信(表形式メール)

見た目をもっと整えたい場合は、HTML形式でメールを送ることもできます。

例:HTMLテーブルに変換して送信

  1. 「変数を設定」アクションで次を作成👇
<html><body>
<h3>本日の売上一覧</h3>
<table border='1' cellspacing='0' cellpadding='5'>
<tr><th>店舗名</th><th>売上金額</th><th>担当者</th></tr>
</html>
  1. 繰り返しアクションの中で次を追加👇
"<tr><td>" & 行[0] & "</td><td>" & 行[1] & "</td><td>" & 行[2] & "</td></tr>"
  1. ループ後に "</table></body></html>" を追加して完成。
  2. 「メール本文」に %HTML本文% を指定し、
     「HTML形式で送信」にチェックを入れる。

これで、表付きの見やすい報告メールが自動で送信されます📬✨


5. よくあるエラーと対処法

トラブル原因対処法
Outlookが起動していないPADは既定アカウントを使用Outlookを一度手動で開いておく
メール本文が改行されないvbCrLfの使い忘れ改行は vbCrLf を必ず使用
Excelデータが途中で切れる空白行が含まれている「使用範囲を読み取る」を使う or 空白行を削除

⑧Excelの値をWeb画面に自動転記する実用フロー

1. 準備:ExcelとWebフォーム

📄 Excelファイルを用意

ファイル名:顧客入力データ.xlsx
場所:

C:\Users\あなたの名前\Documents\顧客入力データ.xlsx

中身は以下のようにします👇

氏名メールアドレス都道府県備考
佐藤太郎sato@example.com東京都新規登録
鈴木花子suzuki@example.com大阪府更新依頼

このExcelの内容を、Webフォームに自動で入力する流れを作ります。


🌐 Webフォームの例(イメージ)

今回は次のようなフォームを想定します👇

  • 名前入力欄
  • メールアドレス入力欄
  • 都道府県選択欄
  • 備考入力欄
  • 「送信」ボタン

※ 実際のサイトにアクセスする場合は、自社フォームなど権限のあるものを使用してください。


2. フロー全体の構成

自動化の流れは次のようになります👇

  1. Excelファイルを開いてデータを読み取る
  2. Webブラウザ(例:Edge)を起動
  3. Excelの各行データをループで処理
  4. Webフォームに自動で入力
  5. 送信ボタンをクリック
  6. 次の行へ繰り返し

3. 実際の操作手順(完全ステップ解説)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」→ フロー名を「ExcelWeb入力」と入力
  3. 作成をクリック

✅ ステップ2:Excelを開いてデータを読み取る

  1. 「Excelワークシートを起動」アクションを追加
     → ドキュメントパス:
       C:\Users\あなたの名前\Documents\顧客入力データ.xlsx  
     → Excelインスタンス名:ExcelInstance
  2. 「Excelワークシートから範囲を読み取る」アクションを追加
     → Excelインスタンス:ExcelInstance
     → 範囲:空欄(自動で使用範囲を取得)
     → 出力変数名:顧客データ
  3. 「Excelを閉じる」アクションを追加
     → Excelインスタンス:ExcelInstance

✅ ステップ3:ブラウザを起動してWebページを開く

  1. 検索欄に「ブラウザー」と入力
  2. 「新しいMicrosoft Edgeを起動」アクションを追加
     → URL:あなたのWebフォームのURLを入力
     → 出力変数名:Browser

例:

https://example.com/form/

✅ ステップ4:Webフォーム入力処理をループで行う

  1. 「各項目に対して繰り返す」アクションを追加
     → リスト:顧客データ
     → 現在の項目を保存する変数名:
  2. ループの中に、以下のアクションを順番に入れます👇

🔹 名前を入力

  • アクション:「UI要素にテキストを入力」
  • テキスト:行[0](1列目の氏名)
  • 対象UI要素:フォームの“名前入力欄”を指定

🔹 メールアドレスを入力

  • 「UI要素にテキストを入力」
  • テキスト:行[1](2列目のメール)
  • 対象UI要素:メール欄をクリックして指定

🔹 都道府県を選択

  • 「UI要素をクリック」アクション
  • 対象:都道府県のドロップダウン
  • 続けて「UI要素をクリック」アクションで該当都道府県を選択
     → 値:行[2]

🔹 備考欄を入力

  • 「UI要素にテキストを入力」
  • テキスト:行[3]

🔹 送信ボタンをクリック

  • 「UI要素をクリック」アクション
  • 対象:送信ボタン

👉 これで、1件分のデータが自動入力&送信されます。


✅ ステップ5:入力完了後に次の行へ

ループ処理により、次の行(2人目、3人目)へ自動で繰り返します。
数十件〜数百件の入力でも、ボタンひとつで完了します。


4. 応用:入力エラーを検知してスキップ

Web側で入力エラーが出た場合でも、フローを止めたくない場合は次のように設定👇

  1. 「例外処理」アクションを使い、
     → 入力アクションを Try に入れる
  2. 「キャッチ」側で「メッセージをログに記録」などを追加し、
     → 問題があっても次の行に進むようにする

💡これにより、エラーが出ても全体の処理は継続できます。


5. よくあるトラブルと対処法

トラブル原因対策
UI要素が見つからないWebページ構造が変わったUI要素を再キャプチャする
フォーム入力が途中で止まるロード待ちがない「待機」アクションを追加(例:2秒)
送信後に次の入力が重なるページ遷移タイミング「ページが読み込まれるまで待機」を設定
Excelの値が空白で入力されるExcel内に空セル条件分岐で空白行をスキップ

⑨Excel→CSV自動変換フローの作り方

1. 準備:Excelファイルの用意

まずは、CSVに変換したいExcelファイルを用意します👇

📄 ファイル名:売上データ.xlsx
📍 保存場所:

C:\Users\あなたの名前\Documents\売上データ.xlsx

内容は簡単でOKです👇

日付商品名金額
2025/10/21A商品1500
2025/10/21B商品2300
2025/10/21C商品1800

2. フロー全体の概要

今回作成する自動化フローは、次のような流れになります👇

  1. Excelをバックグラウンドで起動
  2. 対象ファイルを開く
  3. 「名前を付けて保存」でCSV形式を指定
  4. CSVファイルを保存
  5. Excelを閉じる

この流れを1クリックで実行できるようにすれば、
毎日の出力作業が完全自動化できます。


3. 実際の操作手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」→ フロー名を「Excel→CSV変換」と入力
  3. 作成をクリック

✅ ステップ2:Excelをバックグラウンドで起動

  1. アクション検索欄に「Excel」と入力
  2. 「Excelワークシートを起動」アクションを追加
  3. 設定内容👇
項目入力内容
ドキュメントパスC:\Users\あなたの名前\Documents\売上データ.xlsx
Excelを表示する✅ チェックを外す(非表示で起動)
Excelインスタンスを保存ExcelInstance

👉 Excelが画面に表示されずにバックグラウンドで起動します。


✅ ステップ3:「名前を付けて保存」でCSV出力

  1. 「Excelワークシートを別名で保存」アクションを追加
  2. 以下のように設定👇
項目入力内容
ExcelインスタンスExcelInstance
保存先のファイルパスC:\Users\あなたの名前\Documents\売上データ.csv
ファイル形式CSV UTF-8 (コンマ区切り)

💡ファイル形式の選択肢に「CSV UTF-8」がない場合は、
「ファイル形式」欄に "CSV" と直接入力してもOKです。


✅ ステップ4:Excelを閉じる

  1. 「Excelを閉じる」アクションを追加
  2. Excelインスタンス:ExcelInstance
  3. 「変更を保存する」はチェック不要(すでにCSV保存済み)

これでExcelファイルを閉じて処理が完了します。


✅ ステップ5:動作確認

  1. フローを保存して「▶実行」
  2. 数秒後に、指定フォルダ内に 売上データ.csv が自動生成されます。
  3. CSVを開くと、次のような形式で保存されていれば成功です👇
日付,商品名,金額
2025/10/21,A商品,1500
2025/10/21,B商品,2300
2025/10/21,C商品,1800

4. 応用:複数ファイルを一括変換する方法

フォルダ内に複数のExcelファイルがある場合は、
「フォルダー内のファイルを取得」+「繰り返し」アクションを組み合わせて
すべて自動でCSV変換できます。

🔹 フロー構成例:

  1. 「フォルダー内のファイルを取得」
     → 出力変数:Excel一覧
  2. 「各項目に対して繰り返す」
     → リスト:Excel一覧
     → 現在の項目変数:現在のファイル
  3. Excelを開く → 別名で保存(.csvに変更) → 閉じる

🔹 保存先ファイル名(動的指定):

変数 保存先 = Replace(現在のファイル['Path'], ".xlsx", ".csv")

このようにすれば、どんなファイル名でも自動で.csvに変換できます💡


5. よくあるトラブルと対処法

トラブル原因対処法
「ファイル形式が無効です」保存形式の指定ミス"CSV" または "CSV UTF-8" に変更
CSVファイルが文字化けExcelのエンコード設定「CSV UTF-8 (コンマ区切り)」を選択
Excelが閉じずに残る閉じるアクション漏れ「Excelを閉じる」をループ内の最後に置く
ファイルが上書きされない同名CSVが存在「ファイルを削除」→「別名で保存」で解決

⑩実行ログをExcelに自動記録して管理する方法

1. ログを保存するExcelの準備

まず、ログを保存する専用のExcelファイルを作成します👇

📄 ファイル名:実行ログ.xlsx
📍 保存場所:

C:\Users\あなたの名前\Documents\実行ログ.xlsx

中身は次のようにヘッダー行だけ準備しておきます👇

実行日時処理内容対象ファイル結果メッセージ
(自動記録予定)(自動記録予定)(自動記録予定)(自動記録予定)(自動記録予定)

このファイルに、PADのフローが実行されるたびに
1行ずつ自動で記録されるように設定します。


2. フロー全体の構成

今回作成する自動化フローは次のような構成になります👇

1️⃣ 現在の日時を取得
2️⃣ 処理したいファイル名などを変数に設定
3️⃣ 処理結果を変数に記録
4️⃣ Excel(ログファイル)を開く
5️⃣ 次の空行を検出
6️⃣ 1行分のログを書き込む
7️⃣ 保存して閉じる


3. 実際の操作手順(詳細ステップ)

✅ ステップ1:新しいフローを作成

  1. Power Automate Desktopを起動
  2. 「+新しいフロー」→ 名前を「操作ログ記録フロー」に設定
  3. 作成をクリック

✅ ステップ2:現在日時と処理内容を変数に格納

  1. 「現在の日付を取得」アクションを追加
     → 変数名:現在日時
  2. 「変数を設定」アクションを追加
     → 名前:処理内容
     → 値:"請求書ファイル自動生成"
  3. 「変数を設定」アクションを追加
     → 名前:対象ファイル
     → 値:"C:\Users\あなたの名前\Documents\請求書_2025-10-21.xlsx"

✅ ステップ3:結果を設定(仮で成功とする)

  1. 「変数を設定」アクションを追加
     → 名前:結果
     → 値:"成功"
  2. 「変数を設定」アクションを追加
     → 名前:メッセージ
     → 値:"正常に完了しました"

(後でこの部分を「エラー発生時に失敗へ変更」できるようにします。)


✅ ステップ4:Excel(ログファイル)を開く

  1. 「Excelワークシートを起動」アクションを追加
     → ドキュメントパス:
       C:\Users\あなたの名前\Documents\実行ログ.xlsx  
     → Excelインスタンス名:ExcelLog
  2. 「Excelワークシートから範囲を読み取る」アクションを追加
     → Excelインスタンス:ExcelLog
     → 範囲:空欄(全体を読み取る)
     → 出力変数:LogData

✅ ステップ5:次の空行を検出

  1. 「変数を設定」アクションを追加
     → 名前:次の行番号
     → 値:Length(LogData) + 2

💡理由:
1行目はヘッダーなので、2行目からデータが入るためです。


✅ ステップ6:ログ内容を書き込む

次の5つの「Excelワークシートに書き込み」アクションを追加👇

セル書き込む内容
"A" & 次の行番号%FormatDateTime(現在日時,"yyyy/MM/dd HH:mm:ss")%
"B" & 次の行番号%処理内容%
"C" & 次の行番号%対象ファイル%
"D" & 次の行番号%結果%
"E" & 次の行番号%メッセージ%

これで、実行内容がExcelに1行追記されるようになります。


✅ ステップ7:Excelを保存して閉じる

  1. 「Excelを保存」アクションを追加
     → Excelインスタンス:ExcelLog
  2. 「Excelを閉じる」アクションを追加
     → Excelインスタンス:ExcelLog

✅ ステップ8:テスト実行

フローを実行してみましょう。

実行後に 実行ログ.xlsx を開くと、次のように自動記録されていれば成功です👇

実行日時処理内容対象ファイル結果メッセージ
2025/10/21 10:35請求書ファイル自動生成C:\Users\あなたの名前\Documents\請求書_2025-10-21.xlsx成功正常に完了しました

4. 応用:エラー発生時のログ記録

もし処理中にエラーが出ても止まらずにログを残したい場合は、
「サブフロー」+「エラー処理」を組み合わせます👇

🔹 手順例:

  1. メイン処理を「Try」ブロックにまとめる
  2. 「Catch」ブロックに次を設定:
     - 結果 = "失敗"
     - メッセージ = %Exception.Message%
  3. 最後に「ログ書き込みサブフロー」を呼び出す

👉 こうしておけば、成功・失敗を問わず必ずログが残ります。


5. よくあるトラブルと対処法

トラブル原因対処法
ログが上書きされてしまうセル位置を固定している「次の行番号」を使って動的指定にする
Excelが閉じずに残るフロー中断時に終了していない最後に必ず「Excelを閉じる」を入れる
ログの日時がずれるシステム時刻の違いFormatDateTimeで形式を統一
複数ユーザーが同時実行ファイルロックファイル共有フォルダを避け、個別ログを出力する
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次