『Excel』 VBAでちょっと便利!?(その4)
Excelでのプログラミング4回目です。
今回から、ワークシートのセルの値を取得したり、セルに値を書き込む方法のお話しです。
まず、Excelを開いて、以下の表を作ってください。
■セルの指定
セルは、それぞれ自分の場所を表す住所のようなセル番地を持っています。
セルの番地を指定するには、「Range(レンジ)」を使用する方法と「Cells(セルズ)」を使用する方法があります。 「Range」と「Cells」はいずれも指定したセル(Range)を表します。
・「Range」を使ったセルの指定方法
Rangeを使う方法では、”A1″、”B2″などの形式でセルを指定します。
〔例〕 Range(“A1”):A列1行目のセル 、Range(“B2”):B列2行目のセル
・「Cells」を使ったセルの指定方法
Cellsを使う方法では、行番号と列番号によりセルを指定します。
〔例〕lang = Cells(3,4):3行4列目のセル
赤枠で囲まれているセルは、Range(“C5”)またはCells(5,3)と指定します。
■セルの値
セルの位置の指定方法は分かりました。では、セルの値はどのようにして取得し、書き込むのか?
セルは様々なプロパティ(属性)を持っていて、「文字の大きさ、フォントの種類、文字の色、セルの色、罫線などセルを表す要素」をすべてまとめてセルのプロパティと呼びます。セルの値は、プロパティの1つ「Value(バリュー)」を使って表します。
【セルの値の表し方】
セルを指定するRangeやCellsの後ろに「.(ドット)」を付けてValueと書きます。
Range(“A1”).Value : A1セルの値
Cells(3,2).Value : 3行2列目のセルの値
では、下の赤枠内のセルに[単価]×[数量]の計算結果をプログラムで記入してみましょう。
前回までと同様に、「開発」タブから「Visual Basic」を選択し、VBEを開いてください。
次に「挿入」-「標準モジュール」を選択し、プログラムを入力します。
◇1行目:
Option Explicit ←「プログラム内で使う変数は型を宣言してから使います」という意味です
◇プログラム「test3」のコードの説明
Sub test3() ← プログラムの始まり
Dim Kekka As Integer ← Kekkaという変数を整数として使う宣言
Kekka = Cells(3, 3).Value * Cells(3, 4).Value
← 変数「Kekka」に「3行3列目のセルの値」×「3行4列目のセルの値」の計算結果を代入します
※「×(掛け算)」は「*」で表します。
同様に「÷」は「/」、「+、-」はそのまま「+、-」
Cells(3, 5).Value = Kekka ← 「3行5列目のセルの値」に変数「Kekka」の値を代入します
End Sub ← プログラムの終わり
※「’—–~~~~」は、「’(シングルコーテーション)」の後ろから改行まではコメントを表し、プログラムのコードの説明を記入するときに使います。
入力し終わったら、実行ボタンをクリックしてください。
計算結果が金額欄に記入されました。
では、続けて以下のようにプログラム「test4()」を追加し、実行してください。
Sub test4()
Cells(3, 5).Value = Cells(3, 3).Value * Cells(3, 4).Value
Cells(4, 5).Value = Cells(4, 3).Value * Cells(4, 4).Value
Cells(5, 5).Value = Cells(5, 3).Value * Cells(5, 4).Value
Cells(6, 5).Value = Cells(6, 3).Value * Cells(6, 4).Value
Cells(7, 5).Value = Cells(7, 3).Value * Cells(7, 4).Value
End Sub
このように、変数を使わず直接計算結果をセルに書き込むこともできます。
しかし、各行ごとに同じ計算を記述していては効率的ではありません。
次回は、このような同じ計算を繰り返し行う便利な方法をご紹介します。