実用的なプログラムの第1歩(プロパティ編)
これから実用的なプログラムを作成しましょう。
プログラムは長くしようと思えば100行でも1000行でも書くことができますが、後から読み返したら何を書いたのかわからなくなります。そこでメンテナンスしやすいように、できるだけ短いプログラム(プロシージャ)を書くことを心がけ、1プロシージャ1機能をモットーに、できれば、「Dim」ステートメント、コメント、空白行を除く実質30行以内のプログラムを心がけましょう。それらを組み合わせて別の多機能プログラムが作成できます。
ここでのスタディワードは「変数」「オブジェクト」「プロパティ」「繰り返し」「代入」です。
実際に下のコードを入力してスタディワードを実感しましょう。
まず、標準モジュールシートを追加しましょう。標準モジュールシートを追加するには、メニューバーの「挿入」から「標準モジュール」を選択してEnter キーを押します。
そうしたら、「Module1」という名で追加されます。2回目以降は「Module2」、「Module3」・・・という名前で標準モジュールシートが追加されていきます。
では、Subプロシジャを使って、標準モジュールシートに例題1から3を書いてそれぞれ実行してみましょう。そして、Alt + F11 キーでワークシートに切り替えて、結果の確認をしましょう。
【例題1】 アクティブシートのセルA1からA100に1から100を代入します。
(注) アクティブシートとは、Alt + F11 キーでワークシートに切り替えたときすぐに利用できるワークシートのことです。
- Sub 例題01()
- Dim i As Integer
- For i = 1 To 100
- Cells(i, 1).Value = i
- Next i
- End Sub
(注) ここではValue(値)がセルに対するプロパティです。たとえば、セルA1の値という意味です。
【例題2】 アクティブシートのセルB1からB12に1月から12月を代入します。
- Sub 例題02()
- Dim i As Integer
- For i = 1 To 12
- Cells(i, 2).Value = i & "月"
- Next i
- End Sub
【例題3】 例題1で作成された値に対して、5で割り切れる数なら横のB列に「割り切れた」を代入します。また、割り切れた数字を赤字にします。
- Sub 例題03()
- Dim i As Integer
- For i = 1 To 100
- If i Mod 5 = 0 Then
- Cells(i, 2) = "割り切れた"
- Cells(i, 1).Font.ColorIndex = 3 'カラーインデックス3は赤色
- End If
- Next i
- End Sub
(注1) Mod演算子は、割り算をしてその余りを出します。
(注2) ここでのプロパティ、ColorIndexは文字の色をあらわしています。
オブジェクトとプロパティ
オブジェクトとは、これまでシートやセルに対して何かの操作(追加、削除、代入など)を行ってきましたが、このように「操作をおこなう対象になるもの」をオブジェクトといいます。すなわち、セル(Cell)、セル範囲(Range)、シート(WorkSheet)、ブック(Book)などのように「操作の対象になるもの」がオブジェクトです。
プロパティとは、辞書では「性質、特性」と表現されています。ものに例えるなら、そのものに対して、形、色、重量、大きさなどです。
VBAコードを記述する場合、そういった性質、特性を表現する方法として次のような書式で書きます。
【プロパティの書式】 オブジェクト.プロパティ
オブジェクトの後に、ピリオド「.」を付けてプロパティを書くだけです。
例: 車.色と書けば「車の色」と読み解きます。
(注) プロパティには、「値を設定する」と「値を取得する」の2つの記述があります。
コードの説明
使用する変数は事前に宣言しておかなければなりません。
宣言方法
- Dim 変数名 As データ型
(注1) 変数とは、データを保存しておく場所のことです。文字列、数値、日付などあらゆるデータは、それぞれ違った場所に保存されます。実際はメモリーに保存されます。
(注2) データ型とは、値を保存する器の種類のことです。コーヒーを入れるならコーヒーカップ、ビールならジョッキを使用します。と同じように使用する変数が取り扱うデータが整数なのか小数なのか文字列なのか日付なのかなどを指定します。
繰り返し処理(For文)
「For 〜 Next」の間を指定された回数だけ実行します。
分岐処理(IF文)
「If 条件式 Then 処理A End IF」の条件式を満足したときだけ処理Aを行います。
Cellsはセルの集合体を表し、個々に行列番号を指定して処理します。
- 例 Cells(行番号,列番号)
【ワンポイント】 DimとはDimensionの短縮形で意味は〔幅・奥行き・高さの〕寸法、〔物の〕大きさ、面積、体積、容量です。