ExcelVBA

【ExcelVBA・マクロ】セルの結合・解除を自動化する方法|Mergeメソッドの使い方と注意点【コピペOK】

見積書や請求書のフォーマットを整えるとき、複数のセルを手作業で結合しているとかなりの時間がかかります。ExcelVBAのMergeメソッドを使えば、決まったパターンのセル結合を一瞬で自動化できます。この記事では、セルを結合・解除する基本コー...
ExcelVBA

【ExcelVBA・マクロ】WithEventsの使い方|クラスモジュールで複数ブックのイベントを検知する方法【コピペOK】

「開いているすべてのブックでシートが変更されたら記録したい」「Workbook_OpenやWorksheet_Changeのようなイベントを、あとから追加したブックにも仕込みたい」——こうした要望は、ThisWorkbookモジュールやSh...
ExcelVBA

【ExcelVBA・マクロ】2つのシートの差分を自動抽出する方法|Dictionaryで高速比較するマクロ【コピペOK】

見積書の旧バージョンと新バージョン、更新前後の在庫表など、「2つのシートを見比べて、どこが変わったのかを洗い出したい」という作業は意外と多いものです。目視でのチェックはミスが起きやすく、行数が多いと現実的ではありません。この記事では、Exc...
ExcelVBA

【ExcelVBA・マクロ】Like演算子の使い方|ワイルドカードで文字列パターンを柔軟に判定する方法【コピペOK】

ExcelVBAで文字列を判定するとき、「特定の文字で始まるか」「決まった桁数の数字か」といった条件を、InStr関数や複数のIf文を組み合わせて書いていませんか。実はVBAにはLike演算子という、ワイルドカードを使って文字列パターンを直...
ExcelVBA

【ExcelVBA・マクロ】ユーザーフォームのMultiPageとFrameの使い方|画面を切り替えて入力項目を整理する方法【コピペOK】

ExcelVBAのユーザーフォームで入力項目が増えてくると、1つの画面にすべてのコントロールを詰め込んでしまい、見づらく操作しにくいフォームになりがちです。また、オプションボタン(ラジオボタン)を複数グループ用意したいのに、すべて同じフォー...
ExcelVBA

【ExcelVBA・マクロ】Declare Functionの使い方|Windows API宣言の基本とSleep関数で処理を待機する方法【コピペOK】

VBAには数千個もの関数が用意されていますが、「ミリ秒単位で処理を待機したい」「処理時間を正確に計測したい」といった、VBA単体では実現しづらい処理も存在します。こうした場合に使えるのが、Windowsが提供するDLL(kernel32.d...
ExcelVBA

【ExcelVBA・マクロ】Application.EnableEventsの使い方|Worksheet_Changeの無限ループを防ぐ方法【コピペOK】

ExcelVBAでWorksheet_Changeイベントを使ってセルの変更を検知する処理を書いていると、「イベント内でセルの値を書き換えたら、Excelが固まったり、同じ処理が何度も実行されてしまった」という経験をしたことがあるかもしれま...
ExcelVBA

【ExcelVBA・マクロ】IsArray・IsObject・IsMissing関数の使い方|配列・オブジェクト・省略引数を判定する方法【コピペOK】

ExcelVBAでプロシージャや関数を作っていると、「受け取った引数が配列かどうか分からずエラーになった」「オブジェクト変数なのに通常の変数として扱ってしまいエラーが出た」「Optional引数が省略されたかどうかを判定できない」といった悩...
ExcelVBA

【ExcelVBA・マクロ】セルコメント(メモ)の使い方|一括追加・編集・削除する方法【コピペOK】

セルコメント(メモ)とはExcelのセルには、セルの内容を補足する「コメント」(Excel 2019以降のバージョンでは「メモ」という名称)を付けることができます。入力ルールの補足や、データの根拠、確認済みかどうかのメモなど、セルの値そのも...
ExcelVBA

【ExcelVBA・マクロ】ユーザーフォームのオプションボタン(ラジオボタン)の使い方|選択された項目を判定する方法【コピペOK】

オプションボタン(ラジオボタン)とはユーザーフォームで「複数の選択肢から1つだけ選ばせたい」という場面では、オプションボタン(一般的には「ラジオボタン」とも呼ばれます)を使います。チェックボックスが複数選択できるのに対し、オプションボタンは...