ExcelVBA Step_5 制御構造 (1) |
VBAには4種類の演算子があります。
《比較演算子》
《文字連結演算子》ステートメント
ステートメントには2つの意味があります。一つはプロシージャの命令文を意味するものです。
もう一つは、Excelの操作外のことを実現するための命令です。例えば、プログラム内の処理の流れを制御したり、データを操作するために使用される命令のことを言います。
ステートメントの種類に関しては、へルプのランゲージリファレンス、ステートメント の項目を参照ください。
下記のプロシージャは、Beepステートメントを使った例です。
Sub MyBeep()
'
'次の例は、Beep ステートメントを使って、コンピュータのスピーカを 3 回連続して鳴らします。
Dim I
For I = 1 To 3 ' ループを 3 回繰り返します。
Beep ' ビープ音を鳴らします。
Next I
End Sub
演算子
《算術演算子》
算術演算をするときに使います
演算子 意味 サンプル
+ 加算 Range("A1") + Range("B1") - 減算 Range("A1") - Range("B1")
* 乗算 Range("A1") * Range("B1")
/ 除算 Range("A1") / Range("B1")
^ べき乗 Range("A1") ^ Range("B1")
\ 除算の商を Range("A1") \ Range("B1")
% 除算の余り Range("A1") % Range("B1")
IF〜Then〜Else ステートメントの中で条件の比較を行うときに使います。
演算子 記入例 意味 = Range( "A1") = 100 100と等しい > Range( "A1") > 100 100より大きい < Range( "A1") < 100 100より小さい >= Range( "A1") >= 100 100以上 <= Range( "A1") <= 100 100以下 <> Range( "A1") <> 100 100でない
文字を連結するときに使う演算子です。主にMsgBox関数と一緒に使われます。
次の例題では、MsgBox関数を使って文字列と変数を連結しています。
"固定文字列" & 変数 & "です"
Sub 文字型変数()
Dim firstbookname As String
firstbookname = Workbooks(1).Name
MsgBox "最初に開いたブックは " & firstbookname & "です"
End Sub
《実行結果》
《論理演算子》
And演算子とOr演算子は、If 〜 Then 〜 Else ステートメントの中で、条件を連結するときに使います。
Not演算子は、Withステートメントの中でよく使われます。
Sub And演算子()
'And演算子で連結されたIfステートメントでは、条件がすべて満たされた場合にのみ
'Trueが返されます。
Dim num1 As Integer
Dim num2 As Integer
num1 = 200
num2 = 100
If num1 >= 200 And num2 >= 100 Then
MsgBox "条件を満たしています"
Else
MsgBox "条件を満たしていません"
End If
《実行結果》
VBA関数
Excelに搭載されている関数を、ワークシート関数と言いますが、VBAというプログラミング言語も独自の関数を搭載しています。
これをVBA関数と呼びます。
VBAには140以上の関数が用意されています。
次の例は、Int関数を使ったプロシージャです。
Sub Int関数()
Range("A1") = 111.25
Range("A2") = Int(Range("A1"))
End Sub
《実行結果》
ワークシート関数
Sub 最大値()
'ワークシート関数を使って、最大値を求める
Dim myMax As Range
Set myMax = Worksheets("売上集計").Range("D6:D12")
answer = Application.WorksheetFunction.Max(myMax)
MsgBox "最大値は" & answer & " です"
《実行結果》