27 September, 2020

Excel VBAプログラミング教育:各種類の演算子

次にはExcel VBAの各種類演算子の使用方法と例のコードを示します。

各プログラミング言語には一連の演算子があり、異なる演算子によって異なるデータを計算できます。Excel VBAでよく使用される演算子は次のとおりです。

算術演算子

次の図表には、VBAの算術演算子です。

演算子說明優先順位
^べき乗1
*掛け算2
/割り算2
\割り算の商3
Mod割り算の余り4
+足し算5
引き算5

次には、数学演算の例です。

Dim a, b As Integer, c As Double
a = 5
b = 10
c = a + b ' 足し算
c = a - b ' 引き算
c = a * b ' 掛け算
c = b / a ' 割り算
c = b Mod a ' 割り算の余り
c = b ^ a ' べき乗

文字列連結演算子

文字列連結に関わる演算子は一つだけです。

演算子說明
&文字と文字を連結する

次には文字と文字を連結する例です。

Dim text1 As String, text2 As String
text1 = "Hi"
text2 = "深井京子"
MsgBox text1 & " " & text2

比較演算子

比較演算子(comparison operators)は値の大小関係を比較し、ブール値(TrueまたはFalse)を返すことができます。よく使われる比較演算子は次のとおりです。

演算子說明
=一致
<>不一致
<小さい
>大きい
<=小なりイコール
>=大なりイコール

論理演算子とビット演算子

論理演算子とビット演算子は各種類の論理演算に適用です。ビット演算にも適用です。

演算子說明
And論理積
Or論理和
Not論理否定
Xor排他的論理和

次にはAnd論理演算の例です。

Dim a, b, c As Integer
Dim x, y As Boolean
a = 10
b = 8
c = 6
x = a > b And b > c ' 結果為 True
y = b > a And b > c ' 結果為 False
MsgBox "x is " & x & ", y is " & y

各種類の演算子が混ざって演算する場合は、実行順位に注意する必要があります。例えば、比較演算子は論理演算子とビット演算子より優先のため、判定式を実行する時に、まず値の大小関係を比較し、また論理積を実行します。演算子の優先順位に関する詳しい情報はOperator Precedence in Visual Basicをご覧ください。

同じのAnd演算子でもビット演算に適用です。

Dim a, b, c, x, y, z As Integer
a = 10
b = 8
c = 6
x = (a And b) ' 結果は 8
y = (a And c) ' 結果は 2
z = (b And c) ' 結果は 0
MsgBox "x = " & x & ", y = " & y & ", z = " & z

ビット演算子は個々のビットに対して演算を行うための演算子です。r例の「a And b」と言うと、2進数で表す場合はaの値が1010であり、bの値が1000なので、2つの値をAnd演算子で演算した後、その結果は2進数での1000、10進数での8です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です