ous">

小さな在庫管理

在庫管理導入からシステム作成まで詳細解説!

VBA 演算子について詳細解説! [VBA関連解説#10]

この記事では、各種の演算子について解説します。

演算子は、条件分岐のIfステートメントで使われることが多く、演算子を理解すると、さまざまな条件が設定できるようになります。


VBA関連解説

演算子について

VBAで、四則演算したり、値を比較したりするときに使用するのが、演算子です。演算機能が含まれている文字列、とも言えます。

代表的な演算子について解説していきます。

 

算術演算子

算術演算子とは、2つの数値を算術演算する時に使われる演算子です。

左辺に数値1、右辺に数値2を記述すると、2つの値を算術計算した計算結果が返されます。

数値1 算術演算子 数値2

算術計算した後の計算結果は、数値を返します。

算術演算子
  

Mod 関数

Mod関数は、左辺に数値1、右辺に数値2を記述すると、数値1を数値2で割った余りが取得できます。

数値1 Mod  数値2

余りの特性を利用して、偶数・奇数の判定に使われたりします。

Dim num as Long
num = 2

If num Mod 2 = 0 Then
    MsgBox "偶数です。"
Else
    MsgBox "奇数です。"
End If

"偶数です。" が表示されます。

 

比較演算子

比較演算子とは、2つの数値を比較し判定する時に使われる演算子です。

左辺に数値1、右辺に数値2を記述すると、2つの値を比較した判定結果が返されます。

数値1 比較演算子 数値2

比較した後の判定結果はBoolean型の値となり、True かFalse を返します。

比較演算子

 

論理演算子

論理演算子とは、2つの判定結果を論理演算で判定する時に使われる演算子です。

左辺に条件判定1、右辺に条件判定2を記述すると、2つの判定結果を論理演算した判定結果が返されます。

条件判定1 論理演算子 条件判定2

論理演算した後の判定結果はBoolean型の値となり、True かFalse を返します。

論理演算子
 

論理演算

1. 論理積:AND

論理積:ANDは、条件判定Aと条件判定BがどちらもTrueの時、Trueを返します。
”AかつBが真なら真”ともいえます。

論理積

2. 論理和:OR

論理和:ORは、条件判定Aと条件判定BのどちらかがTrueの時、Trueを返します。
”AまたはBが真なら真”ともいえます。

論理和

3. 論理否定:NOT

論理否定:NOTは、条件判定Aが、FalseならTrue、TrueならFalseを返します。
”判定値の反対を出力”ともいえます。

論理否定

 

文字列を扱う演算子

VBAで、文字列を扱うときには、文字列を演算する演算子を使います。

代表的な演算子について解説していきます。

 

& 演算子

&演算子とは、2つの文字列を結合する時に使われる演算子です。

左辺に文字列1、右辺に文字列2を記述すると、2つの文字列を結合した結合結果が返されます。

文字列1 & 文字列2

結合した後の結合結果は、文字列を返します。

&演算子
 

+ 演算子との違い

&演算子は、文字列・数値ともに結合された結果が返されますが、+演算子は、文字列は結合できますが、数値は加算されます。

+演算子

この特性の違いから、文字列を扱うときは、&演算子を使いましょう。

 

Like 演算子

Like 演算子とは、文字列がパターンと合致するか(パターンマッチング)を判定する時に使われる演算子です。一般的には、あいまい条件とも呼ばれます。

左辺に文字列、右辺にパターンを記述すると、パターンマッチングの判定結果が返されます。

文字列 Like パターン

否定形は文頭にNot を記述します。

Not 文字列 Like パターン

パターンマッチングした後の判定結果はBoolean型の値となり、True かFalse を返します。

Like演算子
  

ワイルドカード

ワイルドカードとは、パターンを表現した文字列です。

ワイルドカード
 
それぞれのワイルドカードを用いたパターンで、パターン判定する場合を例示していきます。

1. ?:任意の1文字

Dim str As String
str = "あさ"

If str Like "あ?" Then
    MsgBox str & "は、あで始まる2文字です。"
End If

"あさは、あで始まる2文字です。" が表示されます。

2. *:0文字以上の文字
*は、"文字列*"とすると前方一致、"*文字列"とすると後方一致、"*文字列*"とすると文字含むの検索等に利用できます。

Dim str As String
str = "あいさつ"

If str Like "あ*" Then
    MsgBox str & "は、あで始まります。"
End If

"あいさつは、あで始まります。" が表示されます。

3. #:任意の半角英数

Dim num As String
num = 66

If num Like "##" Then
    MsgBox num & "は、2桁の数字です。"
End If

"66は、2桁の数字です。" が表示されます。

4. [CharList]:CharListに含まれる任意の1文字

Dim str As String
str = "B"

If str Like "[ABCD]" Then
    MsgBox str & "は、範囲指定した文字です。"
End If

[CharList]は、ハイフン(—)で範囲指定できます

Dim str As String
str = "B"

If str Like "[A-F]" Then
    MsgBox str & "は、範囲指定した文字です。"
End If

"Bは、範囲指定した文字です。" が表示されます。

5. [!CharList]:CharListに含まれない任意の1文字

Dim str As String
str = "M"

If str Like "[!ABCD]" Then
    MsgBox str & "は、範囲指定外の文字です。"
End If

[CharList]は、ハイフン(—)で範囲指定できます

Dim str As String
str = "M"

If str Like "[!A-F]" Then
    MsgBox str & "は、範囲指定外の文字です。"
End If

"Mは、範囲指定外の文字です。" が表示されます。

 
各種の演算子の使い方が判ったら、条件分岐のIfステートメント・Select Caseステートメントで活用してみましょう。

下記の記事では、VBAでの条件分岐に使用する、Ifステートメント・Select Caseステートメントの使用方法を解説していますので、参考にしてください。


概要解説に戻る