Excel VBAの使い方/マクロ・VBA

エクセルのマクロ基本構文と読み方(オブジェクト)(4ページ目)

この記事では、オブジェクトに関する知識やWithステートメントについてご紹介。「マクロの基本構文とその読み方(前編)」と合わせて読めば、マクロを読みこなすための知識が整理できます!

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド


Withステートメントの構造とその読み方


最後に、マクロ記録で頻出する「Withステートメント」について紹介しましょう。

早速、Withステートメントのサンプルをご覧下さい。このサンプルは、セルのフォントを変更する操作を記録した場合のVBAプログラムです。
Withステートメントは、「With」で始まり、「End With」で終了します。Withの直後にはオブジェクトを表すキーワードが記述され、WithとEnd Withの間には、そのオブジェクトに対する操作内容(プロパティの設定やメソッドの実行など)が記述されます。


ポイントは、「1つのオブジェクト」に対する「複数の操作」がまとめて記述されている、という点です。「With」の後に記述されているオブジェクトが「1つのオブジェクト」で、「With」と「EndWith」の間に複数の「操作」が記述されている、というわけです。
「操作」を表すキーワードの行頭に記述されている「.(ピリオド)」は、「1つのオブジェクト」につながっていることを表しています。これは、プロパティの構文で紹介した「オブジェクト.プロパティ=値」での「.(ピリオド)」と同じものです。


ということは、Withステートメントは、下図のように書き換えることができます。Withステートメントと比較すると、繰り返し記述されるべきオブジェクト名が、WithステートメントではWithの直後にだけ記述されていることがわかりますね。


したがって、Withステートメントを読むときは、Withの直後のオブジェクトを操作の主体として補いながら、EndWithまでの間の操作内容を読み解きます。

詳しく読み解いてみましょう。オブジェクトの部分の「Selectionプロパティ」は現在選択されているセルを指し、そのセルに入力されているフォント(Fontオブジェクト)を「Fontプロパティ」で取得しています。操作の対象であるFontオブジェクトについて、「セル→フォント」と階層をたどった形で記述されているのがわかりますね。そして、「Nameプロパティ」には、変更した後のフォントの名前が記述されています。


ところで、WithとEnd Withの間に記述されている内容は、全て対象セルのフォントに対する操作ですが、よく読むと、実際に操作していない項目ばかり。このように、マクロ記録では、全ての設定項目について記述される場合があります。操作していない内容については、現状の設定状況が記述されます。


こういった記述内容は、目的の操作と関係がないので削除できます。むしろ、VBAプログラムが冗長になるだけなので削除した方が良いでしょう。Withステートメントの構造を考えると、次のように書き換えることが可能です。プロパティの値を設定する、シンプルなステートメントになりました。こういった書き換えも、Withステートメントが読めることで可能になります。


マクロ基本構文と読み方(プロパティとメソッド)」と今回の内容で、マクロ記録で作成されたVBAプログラムを読み解く準備がほぼ完了しました。あとは、ヘルプを活用しながら、様々なプロパティ、メソッドの意味を調べていくだけです。

エクセルのマクロ編集(編集の重要ポイント)」では、読み解いたVBAプログラムを整形する方法について詳しく紹介します。こちらも合わせてご覧ください。
【編集部おすすめの購入サイト】
Amazonで Excel 関連の商品をチェック!楽天市場で Excel 関連の商品をチェック!
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます