shikumika’s diary

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

【Excel VBA】サンプルコードまとめ

Excel VBAの作成時に参考にするコード例や、エラーの発生と対応例をこちらにまとめていきます。

コードは一つの目的に対して、様々な処理内容や記述方法もあるので、基本パターンとしているものを中心に整理しています。

内容:

ファイル操作関連

一覧の取得

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

 「FileSystemObject」、「Application.FileDialog(msoFileDialogFolderPicker)」の使用

複数ブックの繰り返し処理

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

複数ブックのシートを一つのブックにまとめるサンプル

複数ブックのデータ(単票)を一覧表にまとめる事例

複数ブックのデータ(単票)をセル位置変更があっても一覧表にまとめた事例

複数シートの繰り返し処理

複数シートのデータを抽出して一つのシートにまとめる事例

「ActiveWindow.selectedSheets」、「ActiveWindow.RangeSelection」の使用

ファイルやフォルダーの作成、コピー

ファイルやフォルダのコピー例

「CopyFile」、「GetBaseName」、「CopyFolder」の使用、

テーブル、クエリ、ピボットテーブルでの処理例

テーブルに別ファイルのデータをインポート

テーブルをセル範囲に変換してエクスポート

PowerQueryの更新を待ってピボットテーブルを更新

分岐や繰り返しの処理例

数回に1回の定期的な処理

10で割り切れる数字の時だけ、ステータスバーを更新する事例

 「IF文」と「Mod演算子」の組み合わせ

処理速度や操作性の向上

開始時の実行確認と終了時のメッセージを表示 
 「MsgBox」による分岐や、メッセージ(改行含む)の表示例

処理の進捗状況は表示して他の画面更新は停止
 「Application.StatusBar」や「Application.ScreenUpdating」を使用

処理を高速化するため2次元配列の活用サンプル

・ワークシートのデータを二次元配列に読み込み、処理、書き出しの例

エラー対応例

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

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

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

OneDrive利用時、外部参照で「値の更新」が出てファイル選択が求められた事例

Word VBA

Word文書の文字列をExcelの置換リストで一括置換

Wordで、ファイル内の画像サイズを一括変更するVBAのサンプル

VBAでステップ記録ツールのmhtファイルを編集する準備例

【Word VBA】Excelシートの最終行取得(xlUpで実行時エラー 424の対応)

その他の事例

選択しているオブジェクトと同じタイプを一括で選択

選択しているオートシェイプの図形と同じタイプを一括で選択(複数タイプ可)

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

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

置換リストで都度確認しながらWord文書の文字列を置換

Excelで正規表現を使うためのユーザー定義関数サンプル

VBAのメンテナンス性向上のため設定情報をテキストボックスに記載

参考:

データの加工・抽出、管理

データの加工・抽出、管理の操作事例について、以下にまとめています。

shikumika.org