このページの本文へ

前へ 1 2 3 次へ

「Excel VBA」でプログラム入門 第4回

Excel VBA実践編 II――属性変更も簡単

2009年06月26日 06時00分更新

文● 矢野まど佳、熊谷よし

  • この記事をはてなブックマークに追加
  • 本文印刷

マクロのプログラムが書かれている「VBエディタ」を使いこなせるようになれば、マクロ記録だけでは作れない高度なプログラムが作れるようになります。また、マクロ記録で作ったプログラムを変更して、さらに使いやすいマクロにすることも可能です。ここでは、VBエディタの仕組みを解説します。


○○の属性を△△に変更すると書くのが
「オブジェクト.プロパティ=△△」構文

 プロパティとはオブジェクトの属性(特徴や性質)のことです。「オブジェクト).プロパティ」と記述し、オブジェクトとプロパティの間は「.(ピリオド)」を入れます。プロパティの値は「オブジェクト.プロパティ」のかたちでわかります。逆にプロパティの値を設定する場合は「オブジェクト.プロパティ=設定値」のかたちになります。

 たとえば、「社員の岡田太郎さんの内線は「MsgBox 社員("岡田太郎").内線」とします。また、「社員の岡田太郎さんの基本給を25万円に設定する」には「社員("岡田太郎").基本給=250000」とします。実際には、たとえば「セルA1の値を100にする」という記述は「Range("A1").Value=100」となります。

オブジェクトは上位から指定する

オブジェクトは上位から指定する

 「Range("A1").Value=1」という記述では、マクロ実行したときに選択しているシートのセルの値が設定されます。いつでも「Sheet1」の値が設定されるようにするには「Worksheets("Sheet1").Range("A1").Value=1」と記述します。

 また、これまでオブジェクトは1階層の例で説明しましたが、「セル」の上は「ワークシート」、その上は「ブック」という具合にExcelのオブジェクトは階層構造になっています。たとえば「社員("岡田太郎")」だけではどこの社員なのか特定できないことがあるように、「セル("A1")」だけではどのシートのセルのことなのかわからない場合があるのです。このようなときはオブジェクトを階層構造で表します。「会社名("○×商事").所属("営業部").役職("課長").社員("岡田太郎")」というように、VBAでは「Worksheets("Sheet1").Range("A1")」のように記述します。


【よく使うプロパティ】

ColorIndex(カラーインデックス)
内容:
文字の色を指定するときに使うプロパティ。「Range("A1").Font.ColorIndex=3」というように記述する。これは「A1セルのフォントの色を3(赤色)にする」という意味。
Value(バリュー)
内容:
セルの値を指定するときに使うプロパティ。「Range("A1").Value ="ドット"」とすると「A1セルに"ドット"と入力する」の意味になる。「Range("A1").Value ="A2+A3"」なども可。
Name(ネーム)
内容:
オブジェクトの名前を示すプロパティ。「Worksheets("Sheet1").Name ="名前変更"」と記述すると、シートの見出しを「Sheet1」から「名前変更」へと変えることができる。
ActiveCell(アクティブセル)
内容:
選択するセルを示すプロパティ。これはセルを示すオブジェクトにつくものだが、通常使う場合はオブジェクトが省略されて「ActiveCell.Value =1」のようにオブジェクトのように使われる。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ