Withステートメントでまとめる

さぁ、最後の仕上げです。ここまで編集してきたプロシージャをじっくり眺めてみましょう。すると、「Range("B2")」と「Range("Z2")」が繰り返し記述されていることに気付きます。


ちなみに、前回の編集作業で、Selectionプロパティを実際のオブジェクト名に置き換えていたおかげで、上図のようなオブジェクト名の繰り返しに気付くことができています。もし、置き換えていなかったら、この時点で、プロシージャ内に「Selectionプロパティ」の記述が残っていて、どのオブジェクトを指しているのか分かりづらくなってしまいます。Selectionプロパティの置き換え作業には、このような意味もあったのです。

話を元に戻しましょう。上図のようなステートメントは、Withステートメントでまとめます。「エクセルのマクロ基本構文と読み方(オブジェクト)」の「Withステートメントの構造とその読み方」でWithステートメントを「Withステートメントを使わない形」に書き換えたものをご覧頂きましたが、今度はその逆の作業を行う、ということです。

手順としては、共通しているキーワードの前に「With」を記述して、「.(ピリオド)」以下を改行し、この行以降に記述されている共通キーワードを削除します。最後に「End With」を記述します。「With」と「End With」の間は、インデントを入れると読みやすくなります。


実行順序を変更する

書き換えたプロシージャの6行目をご覧下さい。「Application」はExcelを返すプロパティ、「CutCopyMode」は切り取りモードやコピーモードの状態を設定するプロパティです。「False」は「切り取りモードやコピーモードを解除した状態」を表すので、このステートメントは「Excelのコピーモードに解除状態を設定する(Excelのコピーモードを解除する)」と読み解けます。


このステートメントは、コピーした内容を貼り付けた時点で、自動的にコピーモードが解除されたことを表していますが、最後に実行しても支障ないので、プロシージャの末尾に移動します。こうすることで、「Range("Z2")」のキーワードに関わるステートメントをWithステートメントで読みやすくまとめることができます。


>次ページで、ここまで行ってきた編集作業についてまとめてみます。