ExcelVBA

【ExcelVBA・マクロ】Offsetプロパティの使い方|基準セルから相対位置でセルを操作する方法【コピペOK】

はじめにExcelVBAでセルを操作するとき、「今いるセルの1つ下」「3列右」のように、基準となるセルから相対的な位置を指定したい場面がよくあります。そんなときに便利なのがOffsetプロパティです。Offsetを使いこなせると、ループ処理...
ExcelVBA

【ExcelVBA・マクロ】Application.Runの使い方|別ブックのマクロを呼び出す方法【コピペOK】

はじめに複数のExcelブックを使って業務を回していると、「共通処理をまとめたマクロ用ブックを作り、他のブックからそのマクロを呼び出したい」という場面が出てきます。このようなときに使えるのがApplication.Runメソッドです。App...
ExcelVBA

【ExcelVBA・マクロ】セル範囲を配列に一括代入して高速化する方法|Range⇔配列変換の基本【コピペOK】

はじめにExcelVBAで大量のデータを処理していると、「セルを1つずつループして処理しているだけなのに、なぜか異常に時間がかかる」という経験はありませんか? その原因の多くは、セルへのアクセスを繰り返していることにあります。VBAでは、セ...
ExcelVBA

【ExcelVBA・マクロ】Optional引数の使い方|省略可能な引数とデフォルト値で柔軟なプロシージャを作る方法【コピペOK】

はじめにExcelVBAでSubプロシージャやFunctionプロシージャを作るとき、「引数はいつも同じ値を渡すことが多いけど、たまに変えたい」というケースはよくあります。そんなときに便利なのがOptional引数です。Optional引数...
雑記

【個人開発】家庭菜園の記録アプリ「菜園記録 Agnote」を作りました

いつもExcel VBAの記事を読んでくださっている方には少し毛色の違う話になりますが、今回は個人開発で作った家庭菜園の記録アプリ「菜園記録 Agnote」をご紹介します。「せっかく育てているのに、いつ何をしたか忘れてしまう」「スマホのメモ...
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つの画面にすべてのコントロールを詰め込んでしまい、見づらく操作しにくいフォームになりがちです。また、オプションボタン(ラジオボタン)を複数グループ用意したいのに、すべて同じフォー...