Excelからデータを取得したい!
よくある作業ですよね!このページでは、Excelワークシートからデータを読み取るフローを解説します。フローを作成する方法を解説しているので、フローを作りながら理解してください。
Excelワークシートからセルの値を読み取る方法は「Excelワークシートから値を読み取る方法」で解説したので、セルの値だけを読み取りたい場合は、そちらの記事をお読みください。
- Excelワークシートからデータを読み取るフローを作成しよう
- フローを実行しよう
- [範囲の最初の行に列名が含まれています]の設定について
- データテーブルとは複数の値を1つの変数で管理できるデータ型
- ワークシートに含まれる使用可能なすべての値を読み取るには
それではどうぞ!
Excelワークシートからデータを読み取るフローを作成しよう
[店舗マスタ.xlsx]のデータを読み取るフローを解説します。実際にフローを作成しながら理解してください。まず準備してください。
準備
ドキュメントフォルダーに「PAD」というフォルダーを作成し、さらに「Data」というフォルダーを作成してください。「ドキュメントフォルダー\PAD\Data」というフォルダー構成となります。その中に「店舗マスタ.xlsx」を保存してください。
[店舗マスタ.xlsx]は下のボタンをクリックすることでダウンロードできます。
“店舗マスタ.xlsx” をダウンロード 店舗マスタ.xlsx – 357 回のダウンロード – 10.29 KB「ドキュメントフォルダー\PAD\Data\店舗マスタ.xlsx」と配置されていることを確認してください。
フローを作成しよう
それではフローを作成していきましょう!
STEP1 [特別なフォルダーを取得]アクションを追加する
アクションペインで[フォルダー]アクショングループをクリックしてください。[特別なフォルダーを取得]アクションをワークスペースに追加してください。
STEP2 [特別なフォルダーを取得]アクションを設定する
[特別なフォルダーを取得]ダイアログが表示されます。[特別なフォルダーの名前]のドロップダウンリストをクリックし❶、[ドキュメント]をクリックしてください❷。
[作成された変数]に[SpecialFolderPath]と表示されていることを確認して❸、[保存]をクリックしてください❹。
STEP3 [Excelの起動]アクションを追加する
アクションペインの[Excel]アクショングループをクリックし❶、[Excelの起動]アクションを[特別なフォルダーを取得]の後に追加してください❷。
STEP4 [Excelの起動]アクションを設定する
[Excelの起動]ダイアログが表示されます。[Excelの起動]の下矢印をクリックして❶、ドロップダウンリストの中の[次のドキュメントを開く]をクリックしてください❷。
[ドキュメントパス]の[ファイルの選択]をクリックしてください❸。
[ファイルの選択]ダイアログが表示されるので、[店舗マスタ.xlsx]を選択してください❹。[開く]をクリックしてください❺。
[ドキュメントパス]に[店舗マスタ.xlsx]のパスが入力されます。OneDriveがデフォルトのドキュメントフォルダーに設定されている場合は、図とはパスが異なるので注意してください(HINTをお読みください)。
[ドキュメントパス]内のパスを選択し、「\PAD\Data\店舗マスタ.xlsx」(\マークはPADでは、バックスラッシュで表示されます)の前部分を削除してください❻(OneDriveがドキュメントフォルダーに設定されている場合はHINTをお読みください)。
[ドキュメントパス]の[変数の選択]をクリックして❼、表示されたメニューの中から[SpecialFolderPath]をクリックし❽、[選択]をクリックしてください❾。
[ドキュメントパス]に「%SpecialFolderPath%\PAD\Data\店舗マスタ.xlsx」(\マークはPADでは、バックスラッシュで表示されます)となっていることを確認してください➓。これで、ログインユーザーが変わっても動作するようになりました。[保存]をクリックしてください⓫。
STEP5 [Excelワークシートから最初の空の列や行を取得]アクションを追加する
[Excel]アクショングループ内の[Excelワークシートから最初の空の列や行を取得]アクションを[Excelの起動]の後に追加してください❶。
STEP6 [Excelワークシートから最初の空の列や行を取得]アクションを設定する
[Excelワークシートから最初の空の列や行を取得]ダイアログが表示されます。変数名が[FirstFreeColumn]と[FirstFreeRow]となっていることを確認してください❶。後ほど使用します。[保存]をクリックしてください❷。
STEP7 [Excelワークシートから読み取る]アクションを追加する
Excelワークシートからデータを読み取るには[Excelワークシートから読み取る]アクションを使用します。[Excelワークシートから読み取る]アクションはアクションペインの[Excel]アクショングループに格納されています。[Excelワークシートから読み取る]アクションを[Excelワークシートから最初の空の列や行を取得]の後に追加してください❶。
STEP8 [Excelワークシートから読み取る]アクションを設定する
[Excelインスタンス]のドロップダウンリストで、操作するExcelインスタンスを選択してください❶。
[取得]から[セル範囲の値]を選択してください。
[取得]から[セル範囲の値]を選択すると[先頭列]から[最終行]までが表示されます。[先頭列]に「A」と入力し❸、[先頭行]に「1」と入力してください❹。[最終列]の[変数の選択]をクリックして❺、表示された変数一覧の中の[FirstFreeColumn]をクリックし❻、[選択]をクリックしてください❼。
[最終列]に「%FirstFreeColumn%」と入力されました。この「%FirstFreeColumn%」を「%FirstFreeColumn-1%」に変更してください❽。これで最終列が設定できました。
[最終行]も同様に設定していきます。[最終行]の[変数の選択]をクリックして❾、表示された変数一覧の中の[FirstFreeRow]をクリックし➓、[選択]をクリックしてください⓫。
[最終行]に「%FirstFreeRow%」と入力されました。この「%FirstFreeRow%」を「%FirstFreeRow-1%」に変更してください⓬。これで最終行が設定できました。
[詳細]をクリックしてください⓭。[詳細]項目が展開されます。[範囲の最初の行に列名が含まれています]を有効にしてください⓮([範囲の最初の行に列名が含まれています]については「[範囲の最初の行に列名が含まれています]の設定について」で詳しく解説します)。[保存]をクリックしてください⓯。読み取ったデータはデータテーブル型の変数[ExcelData]に格納されます(データテーブル型の変数については「データテーブルとは複数の値を1つの変数で管理できるデータ型」で詳しく解説します)。
お疲れ様です!これでフローは完成です。
フローを振り返ってみましょう。下図のようなフローが完成しているはずです。
フローを実行しよう
フローが完成したので、フローを保存して実行してください。[店舗マスタ.xlsx]が起動した状態で終了します。変数ペインの[ExcelData]をダブルクリックすると、[店舗マスタ.xlsx]の表が格納されていることがわかります。
[店舗マスタ.xlsx]の表がどのようにデータテーブル型変数[ExcelData]に格納されるかは、設定によって変わります。次のセクションで確認しましょう。
[範囲の最初の行に列名が含まれています]の設定について
[店舗マスタ.xlsx]の表がどのようにデータテーブル型変数[ExcelData]に格納されるかは、[範囲の最初の行に列名が含まれています]の設定で変わります。このレクチャーのフローでは、[範囲の最初の行に列名が含まれています]を有効にしたので、最初の行は列名として読み取られました。
[範囲の最初の行に列名が含まれています]を[無効]にしたら、最初の行を列名と見なさずデータとして読み取られます。ヘッダーは自動で生成されます。最初の行に列名が入っていないExcelデータもあるので、その場合はこちらの設定を使ってください。
データテーブルとは複数の値を1つの変数で管理できるデータ型
[Excelワークシートから読み取る]アクションで生成される変数[ExcelData]はデータテーブル型です。データテーブルについて詳しく解説します。
データテーブルとは複数の値を1つの変数で管理できるデータ型です。CSVファイルやExcelファイルのように表形式のデータの場合、データテーブル型の変数で管理します。データテーブルには行と列が含まれています。
格納されている値は、行と列の番号を使用して取得できます。「%変数名[行番号][列番号]%」と記述します。例えば、下図で「%ExcelData[3][2]%」と指定すると、「銀座」というテキストが取得できます。行番号/列番号は0番目から数え始める点に注意してください。
ワークシートに含まれる使用可能なすべての値を読み取るには
セル範囲を指定せずワークシートに含まれる使用可能なすべての値を読み取るには、[Excelワークシートから読み取る]ダイアログの[取得]のドロップダウンリストから[ワークシートに含まれる使用可能なすべての値を読み取る]を選択します。[セル範囲の値]を選択したときとは違い、行や列を指定する必要はありません。
[ワークシートに含まれる使用可能なすべての値を読み取る]の使うのは、1つのワークシートに表が1つだけしかないことが明らかな場合です。 セル範囲を指定しなくてよいので、[セル範囲の値]を指定した場合に比べて設定項目が少なくて済みます。
しかし、1つのワークシートに複数の表やコメントが混在している場合、もしくはその可能性がある場合は[セル範囲の値]を指定しましょう。
ちなみに、上図のデータを[ワークシートに含まれる使用可能なすべての値を読み取る]を指定して読み取ると、データテーブルにはこのように格納されます。このデータテーブルは利用できないそうにありませんね。
まとめ
このレクチャーでは、Excelデータを読み取る方法について解説しました。
Excelワークシート1つに対して1つの表が存在する場合は、範囲を指定せずに読み取ることができることがわかりました。つまり、「すでに整理されているExcelドキュメントはPADでも使いやすい」ということです。整理しないまま自動化するのではなく、最初にExcelドキュメント(もっと言えば、業務自体)を整理してから自動化することを心がけてください。
コメント ログインすると書き込めます