セルの参照
では、次はセルの参照をしましょう
セルの参照には、 Rangeを使う方法 とCellsを使う方法 があります
B4セルを、参照する場合、Rangeを使って参照するには、Range(”B4”)と書きます
セルの番地はダブルクォーテーションでくくってください B4でもb4でもOKです
Cellsを使って、B6セルを参照するには、Cells(6,2)です
Cells、行、列の順番で書いてください
どちらを使ってもいいのですが、プログラムによって使い分けたり、
こちらでないと表せないという場合もあります
今は表し方が2つあるのだなと思ってください!
セルは色々な情報を持っています
表示する値、文字の色、背景色、罫線などなど
セルのなにを、どのようにしたいのかをかかなければいけません・・・
・文字色:Range(“セル番地”).Font.Color = vbBlack
・文字サイズ:Range(“セル番地”).Font.Size = 20
・背景色:Range(“セル番地”).Interior.Color = RGB(255, 0, 0)
・罫線:Range(“セル番地”).Borders.LineStyle = xlContinuous のように書きます
今回はセルの値を参照したいです
値は、Valueであり、本来は、
Range(“セル番地”).Value あるいは、Cells(行,列).Value のように書きます
ただし値は、一番よく使うので、.Valueは省略が可能です。
Range(“セル番地”) あるいは、Cells(行、列)でセルの値を表すことができます
省略して使う場合、.Valueが省略されていることを覚えておいてくださいね。
セルの値 取り出し&書き出し
このようにセルに値が入力されている場合、
次のプロシージャで各セルの値を取り出し、メッセージボックスに表示します
.Valueを省略しています
Sub test()
MsgBox Range("a1")
MsgBox Range("b2")
MsgBox Range("c3")
End Sub
セルの値を取り出すことができました
次はセルに値を書き出してみましょう
こちらも.Valueを省略しています
Sub test()
Range("a1") = "VBAのテキスト代"
Range("b2") = 1000
Range("c3") = "円"
End Sub
このイコール=は代入演算子といいます。
普通の数学で使うイコール=とは違うことに注意してください。
右辺の内容を左辺に代入します。
イコールより左向き矢印のイメージです
連結表示してみましょう
MsgBox Range(“a1”) & Range(“b2”) & Range(“c3”)
&で文字列やセルの値、 数値などを連結できます
変数
次に、変数というものを使ってみましょう
変数は、よく箱にたとえられます
数値や文字列をこの箱に入れて、使うことができます
また、変数は名前を付けて使います。この名前を変数名と言います
まだよくわからないと思いますが、変数を使った方が飛躍的にプログラム効率があがります
例えば i という変数を使い、セルの値をこの変数に代入します
変数は i でなくても、なんでも自分で決めていいのですが、プログラムでは、よく i が使われます
Sub test()
i = Range("a1")
Range("a3") = i + Range("a2")
End Sub
Range(“a1”)の値を i に代入し、
その i にRange(“a2”)を加えた値を
Range(“a3”)とします
Sub test()
Range("a3") = 100 + 200
i = 100
j = 200
Range("a3") = i + j
End Sub
Range(“a3”)は、100+200を計算した値が入ります
i = 100, j = 200とすれば、変数を使って、
Range(“a3”) = i + j でも同じ結果になります
簡単計算機を作りましょう
B5セルの値を変数A C5セルの値を変数Bとして、四則演算した結果をF列に書き出しましょう
×は *を 、 ÷は /を使います
Sub test()
A = Range("b5")
B = Range("C5")
Range("f5") = A + B
Range("f6") = A - B
Range("f7") = A * B
Range("f8") = A / B
End Sub
A,Bの値を変えれば、色々な計算ができますよ
RangeをCellsに書き換えましょう
Sub test()
A = Cells(5, 2)
B = Cells(5, 3)
Cells(5, 6) = A + B
Cells(6, 6) = A - B
Cells(7, 6) = A * B
Cells(8, 6) = A / B
End Sub
列番号を変数にしてみましょう 変数Cです
Sub test()
A = Cells(5, 2)
B = Cells(5, 3)
C = 6
Cells(5, C) = A + B
Cells(6, C) = A - B
Cells(7, C) = A * B
Cells(8, C) = A / B
End Sub
行番号も変数にしてみましょう 変数Dです
Sub test()
A = Cells(5, 2)
B = Cells(5, 3)
C = 6
D = 5
Cells(D, C) = A + B
Cells(D + 1, C) = A - B
Cells(D + 2, C) = A * B
Cells(D + 3, C) = A / B
End Sub
セルの引数(かっこの中)を計算式にしてもいいのです
ExcelとVBEを行き来するのも大変ですし、ユーザーに使ってもらうときは、Excelから操作します
Excel側で実行できるようにしましょう
実行ボタン作成
このプロシージャを実行するためのボタンを作成しましょう
開発→挿入から
フォームコントロール 左上のボタン(フォームコントロール)を選びます
ドラッグして、ボタンを作ります
ボタンと紐づけるプロシージャを選んで、OK
右クリック テキストの編集でボタンにボタン名を付けます(計算という名前にしました)
ボタンとtestが紐づいています
*ボタンを削除したいときは、右クリック切り取りを選びます
ボタンにカーソルを合わせると、ポインターが変わっていればマクロの登録ができています
A B に値を入力して、計算ボタンをクリックすれば、マクロを実行できます