サイトについて      連絡先   検索

VBA 演算子

はじめに

Excel VBA の演算子を紹介します。

+ や - など計算に使うが算術演算子です。

= や > など比較に使うのが比較演算子です。

And や Or など論理演算に使うのが論理演算子です。

算術演算子

計算に使用します。

演算子 演算名 使用例 結果
+足し算1 + 23
-引き算2 - 11
*掛け算2 * 36
/割り算7 / 23.5
\割り算の商7 \ 23
Mod割り算の余り7 Mod 21
^べき乗2 ^ 38
&文字結合"Tips" & "found""Tipsfound"

Dim i As Integer
i = 1 + 2
Debug.Print (i) ' 3

Dim d As Double
d = 7 / 2
Debug.Print (d) ' 3.5

Dim s As string
s = "Tips" & "found"
Debug.Print (s) ' Tipsfound

比較演算子

If 文などの比較に使用します。

演算子 演算名 使用例 結果
=等しい1 = 2False
<>等しくない1 <> 2True
>大きい1 > 2False
<小さい1 < 2True
>=以上1 >= 2False
<=以下1 <= 2True

If i = j Then

End If

Dim b As Boolean
b = (1 = 1)
Debug.Print (b) ' True

Like 演算子

文字列をワイルドカードを使って比較する Like 演算子があります。正規表現を簡単にしたものです。

パターン 説明 使用例 一致例
?任意の 1 文字あい?あいう, あいか, あいも
*0 個以上の文字*ABAB, 0AB, 10AB
#任意の 1 桁 (0–9)##10, 22, 59
[charlist]charlist に含まれる任意の 1 文字[A-C]
[A, H, L]?
A, B, C
A1, H2, L3
[!charlist]charlist に含まれない任意の 1 文字[!A-C]
[!A, B, C]?
D, E, F

Dim b As Boolean

b = "あいうえお" Like "あい*"     ' "あい" で始まるか
Debug.Print (b) ' True

b = "あいうえお" Like "あい?"     ' "あい" で始まる 3 文字か
Debug.Print (b) ' False

b = "あいうえお" Like "あいうえ?" ' "あいうえ" で始まる 5 文字か
Debug.Print (b) ' True

b = 12 Like "##"  ' 2 桁の数字か
Debug.Print (b) ' True
         
b = 12 Like "###" ' 3 桁の数字か
Debug.Print (b) ' Flase

b = "AZZ" Like "[A-C]*"     ' A ~ C の文字で始まるか
Debug.Print (b) ' True

b = "AZZ" Like "[!A-C]*"    ' A ~ C 以外の文字で始まるか
Debug.Print (b) ' Flase
         
b = "AZZ" Like "[A, D, G]*" ' A か D か G で始まるか
Debug.Print (b) ' True

オブジェクト型の演算子

オブジェクト型の参照を比較する Is 演算子があります。

Worksheet などのオブジェクト型 (参照型) のクラスは = で比較できません。

演算子 演算名 使用例 結果
Is参照が等しいSheets(1) Is NothingFalse

何も入っていないオブジェクト型の変数を比較するには Nothing を使用します。


Dim b As Boolean

b = (Sheets(1) Is Sheets(1))
Debug.Print (b) ' True

b = (Sheets(1) Is Sheets(2))
Debug.Print (b) ' False

Dim sheet As Worksheet
b = (sheet Is Nothing)
Debug.Print (b) ' True

b = (Sheets(1) = Sheets(1)) ' これはエラー

論理演算子

論理演算やビット演算に使用します。

演算子 演算名 使用例 結果
And論理積True And True
True And False
False And False
True
False
False
Or論理和True Or True
True Or False
False Or False
True
True
False
Not論理否定Not True
Not False
False
True
Xor排他的論理和True Xor True
True Xor False
False Xor False
False
True
False

And はどちらも True のときのみ結果が True になります。

Or はどちらかが True なら結果が True になります。

Not は結果を反転します。

Xor は比較するものが異なるときに結果が True になります。

ビット演算

数値を2進数で考え、各桁を論理演算するビット演算というやり方があります。

関連ページ