shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】Excelバージョンによる取込可能なデータソースの違い

ExcelのPowerQueryは、バージョンによって取込可能なデータソースが異なります。例えば、PDFをExcelにインポートする際にはPowerQueryが便利ですが、Office 2016やOffice 2019では利用できず、Microsoft 365のExcelで利用可能です。 JSONの取り込みは、Offic…

【Excel】複数回答の選択肢がセル内でカンマ区切りのデータ集計

Excelで、セル内にカンマで区切られたデータ(アンケートの複数回答など)を集計したいとき、Microsoft365のExcelなどにあるTEXTSPLIT関数が便利です。 TEXTSPLIT関数が使える場合、カンマなどの区切文字でセル内の文字列を分割できます。 具体的なアウトプ…

【Excel】複数回答の選択肢が列ごとにあるアンケートデータの集計

Excelでアンケートデータを分析する際など、ピボットテーブル機能を用いて分析するために、複数の列にあるデータを行方向のデータに変換したい時があります。マトリクス表をリストに変換する操作、つまり列のピボット解除です。 前提として、最近のExcelに標…

【Power Query】列のピボット解除で、マトリクス表をリストに変換

Power Query(パワークエリ)には、マトリクス表をリストに変換できる「列のピボット解除」という機能があります。 「列のピボット解除」には、「その他の列のピボット解除」と「選択した列のみをピボット解除」を含めて3種類あり、それぞれの処理の違いに…

【Excel】外部参照で「値の更新」が出てファイル選択が求められた事例

Excelの外部参照は、他のExcelファイルのデータを参照するための便利な機能です。しかし、OneDrive上にあるファイルを参照する場合、予期せぬ挙動でエラーとなったので備忘録。 なお、使用のExcelは、Microsoft® Excel® for Microsoft 365 MSOです。 発生し…

【Excel VBA】Setでワークブックを変数に割り当て(オートメーションエラーの発生事例)

VBA

ExcelのVBAを使って作業を自動化する際、ワークブックを変数に割り当てることはよくあります。このとき、変数が不要になったらSetステートメントでNothingを実施しておかないと、次のような"オートメーションエラー"が発生することがあります。 実行時エラー…

DXに関する資料まとめ(リンク集)

DX(デジタルトランスフォーメーション)の取り組みについての情報収集で、公的資料等を中心にリンク先をまとめてみました。 内容: DXの定義 デジタルガバナンス・コード 中堅・中小企業等向け「デジタルガバナンス・コード」実践の手引きについて 「『デジ…

【Excel】複数シートの表を一つのシートに結合する方法(VSTACK関数の活用)

Microsoft365のExcelには、複数シートの表を一つのシートに結合する際に便利なVSTACK関数があります。 リスト形式のデータ(列ごとに同じ種類のデータが入力された表)を一つの表にまとめるような関数です。もちろん、複数の表が一つのシートにある場合の結…

【Excel VBA】セルのアクティブ化でエラーが発生する原因と対応

VBA

ExcelのVBAで、セルのアクティブ化や選択をしようとすると、セルが存在するにも関わらず「実行時エラー '1004': Range クラスの Select メソッドが失敗しました」「Range クラスのActivate メソッドが失敗しました」というエラーが発生する時があります。 し…

【Excel VBA】処理が止まらない時に強制停止する方法(Breakキーがない場合)

VBA

VBAの実行時、ループ処理が終わらないなど、処理が止まらず困った時に備えて、強制停止の方法を知っておくことは重要です。 基本の方法 基本の方法は、「Ctrl + BREAK」 キーを選択です。 もしくはEscキーの選択や、「Ctrl + Pause」キーなどで、VBAの実行を…

【Excel】数式と計算結果を並べて表示する方法

Excelの計算結果をチェックする目的で、数式と計算結果を並べて表示や印刷したい場合、数式を文字列として表示するFORMULATEXT関数が便利です。 Excelの数式メニューにある「数式の表示」や、ショートカットキー「Ctrl+Shift+`」で、数式表示の有無を切り替…

【Excel】特定の文字列の間の値を抽出する方法(TEXTBEFORE/ TEXTAFTER 関数)

Microsoft365のExcelで、特定の文字列の間の値を抽出する方法は、TEXTBEFORE/ TEXTAFTER 関数が便利です。この関数は、従来のLEFT関数やFIND関数などの組み合わせよりも、シンプルに文字列を抽出できます。 ただし、この関数が使えないバージョンのExcelでは…

【Excel】 セルを効率的に選択・削除する方法(数式のみ、数式以外、数値のみ)

Excelのシートから、 ・数式のみを選択したい。 ・数式以外のデータを削除したい。 ・数値のみを削除したい。 といった選択や削除をしたい時は、「検索と選択」のメニューにある機能を使用すると対象をまとめて選択できます。その後、必要ならそのままDelete…

【Power Automate】処理速度は編集画面での実行が遅く、フロー一覧での実行が早い

Power Automate Desktopの実行は、編集画面とフロー一覧で処理速度が違う。ループ処理など処理回数が多い場合、編集画面から実行すると、実行遅延等の時間含めて処理時間が長くなる。編集画面での実行で処理速度が遅いと感じたら、フローの一覧表示から実行…

【Power Automate】2次元配列のDataTableでFor eachの実施例

Power Automateで、2次元配列のDataTableをFor eachループによる処理サンプル。 For each アクションを使用してデータテーブルをループする場合、反復処理の対象となる変数はデータ行となります。そのため、個々の値を抽出する場合は、データ行を再度For eac…

【Power Automate】ユーザーが選択したフォルダ内のファイルを順番に処理する事例

Power Automate Desktopで、ユーザーが指定フォルダを選択し、当該フォルダ内のExcelファイルを順番に処理する事例。 複数ブックの値を抽出する次のサンプル(フォルダは固定で指定)をベースにフォルダーの選択ダイアログを表示させるフローに修正事例。

【Power Automate】Excelの表から値抽出(2次元配列のDataTableから取得)

Power Automate Desktopの「Excel ワークシートから読み取る」のステップで、値をDateTable(データテーブル)で取得した場合など、データテーブルから値抽出の基本。 基本 例えば、次のようにExcelDataという変数に、データテーブル型で5行5列の2次元配列が…

【Excel】セルの参照元ファイルを効率的に開く、ジャンプする方法

Excelのシートで、他のブックの値を参照しているセルで、元データのファイルを効率的に開く方法の備忘録。例えば、セルに ='C:\aaa\[test.xlsx]Sheet1'!$A$1 という数式が入力されていて、参照元の値が表示されているとします。そのとき、元データのファイル…

【Excel VBA】指定フォルダ内の全てのサブフォルダを一覧表示するコード例

VBA

VBAで、指定フォルダ内にある全てのサブフォルダを一覧表示するコード例。何かの処理目的で「フォルダ情報だけ一覧にしたい」「全てのフォルダを対象に処理をしたい」といったケースで、再帰プロシージャの基本サンプルです。 事例の前提 Excelファイル内に…

【Excel VBA】他のブックのセルの値を取得するユーザー定義関数の検討結果

VBA

ExcelのINDIRECT関数は、同じブック内にある複数のシートの値を抽出する場合には有効ですが、他のブックの値を抽出する場合はブックを事前に開いておく必要があります。なるので、Excelの数式として利用できるユーザー定義関数で対応できないかを検討した備…

【Excel VBA】PDF変換時にビューアーが起動しないようにする方法

VBA

Excel VBAで、ExcelシートをPDFファイルに変換するとき、デフォルトではPDFファイルが保存された後にビューアーが起動してファイルが表示されます。便利な機能ですが、複数のPDFファイルに連続で変換する場合などは、ビューアーの起動は余分です。

【Excel VBA】シートを複数選択する方法(For 文などのループで)

VBA

Excel VBAで、シートのインデックス番号で、複数選択する方法。For 文などのループで、選択したシートを一つずつ処理ではなく、一旦該当するシートを全て選択して処理したいときがあります。このようなケースでは、Worksheet.Select メソッドのパラメーター…

【Excel VBA】指定フォルダ内のExcelファイルを順番に処理(FileSystemObjectの利用)

VBA

ExcelのVBAで、ユーザーが指定フォルダを選択し、フォルダ内のExcelファイルを順番に処理するサンプル。前回のDir関数を利用した方法と同様の処理をFileSystemObjectを利用して実現するサンプルです。 前回のDir関数の方法は、サブフォルダ内の処理ができな…

【Excel VBA】指定フォルダ内のExcelファイルを順番に処理(Dir関数の利用)

VBA

ExcelのVBAで、ユーザーが指定フォルダを選択し、フォルダ内のExcelファイルを順番に処理するサンプル。Dir関数を利用した方法で、別途紹介するFileSystemObject の方法を基本とした方がよい印象 Excel操作で処理が完結するような業務は、VBAでの処理が便利…

【Power Automate】ワークシートに含まれる使用可能なすべての値(データ取得事例と注意点)

Power Automate Desktopには「Excelワークシートから読み取る」というアクションがあり、セルの値を読み取り、転記などの自動化が可能です。このアクションの設定値に「ワークシートに含まれる使用可能なすべての値」を取得というのがあり、どのようにデータ…

【Power Automate】Excel ワークシートから最初の空の列や行を取得する(最小値は2)

Power Automateを使用して「Excelワークシートから最初の空の列や行を取得」アクションを実行する際、新しいシートでも最初の空の行や列は、2行目や2列目となるようなので備忘録。 1行目や1列目とならないので注意が必要ということ。 なお、使用のツールは「…

【Power Automate】Excelのセルの値を取得(複数ブックの値抽出サンプル)

Power Automate のサンプルフローとして、特定フォルダにあるExcelファイルからセルの値を取得し、一覧にする事例。使用のツールは、Windows 10 および Windows 11 ユーザーであれば、無償で利用することができる「Microsoft Automate Desktop」です。

WEBページの共有時、リンク先ページの特定の場所にスクロール、強調表示する方法

他者にWEBページの情報を共有する時、WEBページ内の特定文章の場所も示して共有したい時があります(リンク先URL、根拠となる文章部分など)。Microsoft Edge、Google Chromeなどに以前からある機能ですが、次のようにすることで、リンク先ページの特定の場…

【Excel】 複数ブックのデータ(単票)を一覧表にまとめる方法の比較

Excelで複数のブックのデータ(単票)を一覧表にまとめる方法にはいくつかの選択肢があります。Excel関数、VBA、Power Queryなどを活用したこれまでの備忘録を中心にデータの状況と対応例をまとめてみました。 個人的な結論は、VBAを使った方法が汎用性も高…

【Power Query】列のピボット解除で、単票形式のExcelシートからセルの値を抽出

前回はPower Query(パワークエリ)のカスタム関数の作成事例として、単票形式のExcelシートからセルの値を抽出する方法を紹介しました。今回は列のピボット解除などを活用して、同様にセルの値を抽出する方法の備忘録。 個人的な結論として、カスタム関数の…