エクセルのマクロ編集(編集の重要ポイント)」では、マクロ記録を使って学習用のVBAプログラムを作成し、1つ目の編集ポイント「Selectionプロパティの置き換え」について学習しました。後編にあたる今回は、その他の編集ポイントについて紹介し、学習用のVBAプログラムの編集作業を終了させます。最後に、マクロを編集するポイントについてまとめています。

Withステートメントの不要な記述を削除する

マクロの基本構文とその読み方(オブジェクト)」の「Withステートメントの構造とその読み方」や、「エクセルのマクロ編集(編集の重要ポイント)」の「マクロを編集するということ」で紹介したとおり、Withステートメントには「操作した内容以外の状態」が記述されています。


これらの記述については、次のような問題点があります。

●記録したときと違った条件でVBAプログラムを実行したときに、「操作した内容以外の状態の記述」が実行結果に思いもよらない影響を与えるかもしれない。
●本来実行させたい操作以外の処理も実行されるため、処理スピードが遅くなる。
●VBAプログラムに余計な記述が多くなるため、メンテナンスしづらくなる。

単に「VBAプログラムの分量が多くなる」だけではない、というわけです。このような理由から、記録した操作に関係しない記述は削除しておきましょう。

今回は3つのWithステートメントが記述されています。1つ目のWithステートメントで記述されているプロパティは以下の通りです。


つまり、このWithステートメントは、「セルの書式設定」ダイアログボックスの「配置」タブの設定を表していることがわかります。ここでは、文字の配置の「横位置」を「中央揃え」に設定しただけなので、HorizontalAlignmentプロパティの記述以外は削除します。


Withステートメント内に記述されているプロパティが1つだけになったため、Withステートメントの記述を削除して、シンプルな「オブジェクト.プロパティ = 設定値」の構文の形に修正します。


2つ目のWithステートメントで記述されているキーワードは以下の通りです。


Withステートメントのオブジェクト部分のFontプロパティでFontオブジェクトを取得していることからも分かりますが、このWithステートメントは「セルの書式設定」ダイアログボックスの「フォント」タブの設定を表しています。ここでは、フォントの「スタイル」を「太字」に設定しただけなので、FontStyleプロパティの記述以外は削除し、さらに「オブジェクト.プロパティ = 設定値」の構文の形に修正します。


3つ目のWithステートメントで記述されているキーワードは以下の通りです。


Withステートメントのオブジェクト部分のInteriorプロパティでセルの内部を表すInteriorオブジェクトを取得していることからも分かりますが、このWithステートメントは「セルの書式設定」ダイアログボックスの「パターン」タブの設定を表しています。ここでは、セルの「背景色」を「ローズ」に設定しただけなので、ColorIndexプロパティの記述以外は削除し、さらに「オブジェクト. プロパティ = 設定値」の構文の形に修正します。


>続いてメソッドの引数の編集です。次ページへどうぞ!