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プロパティの記述以外は削除し、さらに「オブジェクト. プロパティ = 設定値」の構文の形に修正します。
>続いてメソッドの引数の編集です。次ページへどうぞ!