ExcelVBA

ExcelVBA

【ExcelVBA・マクロ】Type…End Type(ユーザー定義型)の使い方|複数の情報をひとまとめにする方法【コピペOK】

ExcelVBAでプログラムを組んでいると、「氏名」「年齢」「部署」のように、種類の異なる複数の情報をひとまとめにして扱いたい場面が出てきます。変数をバラバラに宣言することもできますが、関連する情報が多くなるほどコードが読みにくくなってしま...
ExcelVBA

【ExcelVBA・マクロ】Resizeプロパティの使い方|セル範囲のサイズを自由に変更する方法【コピペOK】

ExcelVBAでセル範囲を操作していると、「取得したRangeを基準に、もう少し広い範囲や狭い範囲を扱いたい」という場面によく出会います。そんなときに便利なのがResizeプロパティです。この記事では、Resizeプロパティの基本的な使い...
ExcelVBA

【ExcelVBA・マクロ】Intersect・Unionメソッドの使い方|複数セル範囲の共通部分・結合を取得する方法【コピペOK】

ExcelVBAでセル範囲を扱っていると、「2つの範囲が重なっている部分だけを取得したい」「離れた複数の範囲をまとめて1つのRangeとして処理したい」という場面があります。こうしたセル範囲同士の演算を行うのが、Intersectメソッドと...
ExcelVBA

【ExcelVBA・マクロ】ユーザー定義関数(UDF)の作り方|セルで使えるオリジナル関数を作成する方法【コピペOK】

ExcelVBAでSubプロシージャを書けるようになると、次に「セルの中で=関数名()のように自分だけのオリジナル関数を使いたい」と思う方も多いのではないでしょうか。ExcelにはSUMやVLOOKUPなど便利な関数が数多く用意されています...
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引数...
ExcelVBA

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

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

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

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