演算子は「値と値のあいだで何をしたいか」を表す記号
演算子は、
「足したい」「引きたい」「比べたい」「つなげたい」「条件を組み合わせたい」
といった“意図”を、記号で表現したものです。
VBAでは、
数値を計算する演算子
値を比べる演算子
条件を組み合わせる演算子
文字列をつなげる演算子
など、いくつかの種類があります。
まずは「よく使うもの」だけをしっかり押さえれば十分です。
そこから少しずつ広げていきましょう。
数値の演算子(四則演算+α)
基本の四則演算
数値に対して使う演算子は、感覚的には算数とほぼ同じです。
Sub SampleArithmetic()
Dim a As Long
Dim b As Long
Dim c As Double
a = 10
b = 3
c = a + b ' 足し算 → 13
c = a - b ' 引き算 → 7
c = a * b ' 掛け算 → 30
c = a / b ' 割り算 → 3.3333...
End Sub
VBここでのポイントは、割り算 / は「小数を含む結果」になることです。
整数同士でも、結果は Double になります。
整数同士の割り算(\)と余り(Mod)
「割り算の“商”だけ欲しい」「余りだけ欲しい」という場面もあります。
Sub SampleIntegerDiv()
Dim a As Long
Dim b As Long
Dim q As Long
Dim r As Long
a = 10
b = 3
q = a \ b ' 整数の商 → 3
r = a Mod b ' 余り → 1
End Sub
VBa \ b は「10 ÷ 3 の整数部分だけ」a Mod b は「10 ÷ 3 の余り」
というイメージです。
ループや「何行ごとに処理する」などの場面で、Mod はよく使います。
比較演算子(値を比べる)
等しい・等しくない・大小比較
If 文などで「条件」を書くときに使うのが比較演算子です。
Sub SampleCompare()
Dim a As Long
Dim b As Long
a = 10
b = 5
If a = b Then
MsgBox "a と b は等しい"
End If
If a <> b Then
MsgBox "a と b は等しくない"
End If
If a > b Then
MsgBox "a は b より大きい"
End If
If a >= b Then
MsgBox "a は b 以上"
End If
If a < b Then
MsgBox "a は b より小さい"
End If
If a <= b Then
MsgBox "a は b 以下"
End If
End Sub
VBここでの「=」は、代入ではなく「比較」です。
「a と b が等しいか?」を判定して、True / False を返します。
<> は「等しくない」、>, <, >=, <= は、数学と同じ意味で使えます。
文字列の比較
文字列同士も比較できます。
If name = "山田" Then
MsgBox "山田さんです"
End If
VBただし、文字列の大小比較(> や <)は、文字コード順になるので、
超初心者のうちは「等しいかどうか」だけに絞って使うほうが分かりやすいです。
論理演算子(条件を組み合わせる)
And と Or の基本
複数の条件を組み合わせたいときに使うのが論理演算子です。
Sub SampleLogical()
Dim score As Long
score = 75
If score >= 60 And score < 80 Then
MsgBox "60点以上80点未満です"
End If
If score < 60 Or score >= 80 Then
MsgBox "60未満か80以上です"
End If
End Sub
VB条件1 And 条件2 は「両方とも True のときだけ True」条件1 Or 条件2 は「どちらか一方でも True なら True」
という意味です。
「60以上かつ80未満」
「60未満または80以上」
のように、日本語で言い換えながら読むと理解しやすくなります。
Not で条件を反転する
Not は、True と False をひっくり返します。
If Not score >= 60 Then
MsgBox "60点未満です"
End If
VBNot score >= 60 は、「score >= 60 が False のとき True」
つまり「60未満」のときに True になります。
ただし、Not を多用すると条件が読みにくくなることもあるので、
「日本語にしたときに分かりやすいか」を意識して使うのがおすすめです。
文字列演算子(& でつなぐ)
& は「文字列をくっつける」演算子
文字列同士をつなげるときは & を使います。
Sub SampleStringOp()
Dim firstName As String
Dim lastName As String
Dim fullName As String
firstName = "太郎"
lastName = "山田"
fullName = lastName & " " & firstName
MsgBox fullName
End Sub
VB& は「文字列の足し算」のようなイメージです。
数値の足し算と混ざらないように、
「数値の計算は +」「文字列の結合は &」
と使い分ける癖をつけておくと安全です。
代入演算子(=)の位置で意味が変わることを整理する
代入としての「=」
Dim a As Long
a = 10
VBここでは、「右側の 10 を左側の a に入れる」という“代入”です。
文の先頭付近に出てくる「=」は、基本的に代入と考えてOKです。
比較としての「=」
If a = 10 Then
' 比較
End If
VBIf の中に出てくる「=」は、「a と 10 が等しいか?」という“比較”です。
True / False を返す式の一部として使われています。
同じ記号でも、
「文の形」と「前後の文脈」で意味が変わる、というのがポイントです。
演算子の優先順位とカッコの使い方
優先順位の基本
VBAにも「どの演算を先に計算するか」という優先順位があります。
ざっくり言うと、
掛け算・割り算が先
足し算・引き算が後
という、算数と同じルールです。
Dim x As Long
x = 2 + 3 * 4 ' 2 + (3 * 4) → 14
VB3 * 4 が先に計算され、その結果に 2 が足されます。
カッコで「自分の意図」をはっきりさせる
優先順位を覚えるよりも大事なのは、
「カッコを使って、意図を明確にする」ことです。
x = (2 + 3) * 4 ' (2 + 3) を先に計算 → 20
VBこのように書けば、
「2 と 3 を先に足してから 4 を掛けたい」という意図が、
自分にも他人にも、そしてコンピュータにもはっきり伝わります。
複雑な式になりそうなときほど、
「カッコでグループ分けする」
という習慣をつけておくと、バグがぐっと減ります。
超初心者向け「演算子」の意識ポイントまとめ
演算子は、コードの中でとにかく頻繁に出てきます。
だからこそ、ここを“感覚レベル”で押さえておくと、他の文法も理解しやすくなります。
意識してほしいのは、次のようなことです。
数値の計算は +, -, *, /, , Mod
値の比較は =, <>, >, <, >=, <=
条件の組み合わせは And, Or, Not
文字列の結合は &
「=」は、代入と比較で意味が違う(文脈で判断する)
迷ったらカッコで「どこからどこまでを先に計算するか」をはっきり書く
