『Excel』 VBAでちょっと便利!?(その4)

2018年09月19日 仕事のこだわり

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

 

このように、変数を使わず直接計算結果をセルに書き込むこともできます。

しかし、各行ごとに同じ計算を記述していては効率的ではありません。

 

次回は、このような同じ計算を繰り返し行う便利な方法をご紹介します。

 

Copyright © syshan.jp all rights reserved.