皆さんは、VBAで演算子を使ったことがありますか?
計算や条件を作るときには使うのが演算子なのですが、詳しく使い方を覚えている人は少ないのではないでしょうか。
そこで今回は、
・演算子とは
といった基礎的なことから、
・演算子ごとの意味・使い方
・演算子とあわせて覚えると便利な関数
・演算子とセットで覚えると便利なIF文の使い方
といった応用的な方法まで、徹底的に解説します!
演算子とは
演算子とは、wikipediaで以下のように解説されています。
演算子(えんざんし、英: operator symbol, operator name)は、数式やコンピュータプログラミング言語などで、各種の演算を表わす記号・シンボルである。
簡単に言うと、コンピューターの計算に使う「+」「-」や、値を比較する時に使われる「<」「>」のような記号のことです。
演算子と知らずに使っている方も多いと思いますが、演算子についてまとめて知っておくと頭も整理されるのでおすすめです!
演算子の種類ごとの使い方
演算子には、大きく分けて5つの種類があります。
それぞれ詳しく解説しますね。
算術演算子
最初に、算術演算子について解説します。
算術演算子は、足し算、引き算、掛け算、割り算などの計算に使う演算子です。
例えば、次のように計算で使います。
算術演算子サンプルコード:
Sub Test1() MsgBox 1 + 2 End Sub
実行結果:
1と2を足したサンプルですが、間に書いている「+」が算術演算子です。
いくつか種類があるので、表形式で一覧にしました。
No | 演算子 | 意味 | 例 | 結果 |
---|---|---|---|---|
1 | + | 足し算 | 1 + 5 | 6 |
2 | - | 引き算 | 5 - 1 | 4 |
3 | * | 掛け算 | 1 * 5 | 5 |
4 | / | 割り算 | 10 / 2 | 5 |
5 | \ | 割り算の商 | 10 \ 3 | 3 |
6 | Mod | 割り算の余り | 10 Mod 3 | 1 |
7 | ^ | べき乗 | 2 ^ 5 | 32 |
割り算の余りを計算は、Mod関数を使います。
Mod関数については以下で詳しく解説しているので、気になる方は見てみてくださいね!
文字列演算子
次に、文字列演算子について解説します。
文字列演算子は、文字列結合するための演算子です。
文字列の間にアンド(&)を入れることで、つぎのように文字列を簡単に結合することができます。
文字列演算子サンプルコード:
Sub Test2() MsgBox "私の名前は" & "侍エンジニア1です。" End Sub
実行結果:
アンド(&)を使えば、とても簡単に文字列結合することができます。
ただ、文字列の数が多くなるとアンド(&)を使った文字列結合だと処理に時間がかかってしまいます。
高速に文字列結合したい場合は、Mid関数、Join関数がおすすめです!
Mid関数は文字列を置換して結合し、Join関数は一度配列にデータを入れてから結合することができます。
以下で詳しく解説しているので、気になる方は見てみてくださいね!
代入演算子
次に、代入演算子について解説します。
代入演算子は、変数に値を入れるための演算子です。
変数名のあとに、イコール(=)を付けることで値を入れることができます。
代入演算子のサンプルコード:
Sub Test3() Dim intNo As Integer intNo = 5 '代入演算子(=)を使ってintNoに5を入れる MsgBox "intNoの値は" & intNo & "です。" End Sub
実行結果:
このように、変数に値を入れるときに使います。
比較演算子
次に、比較演算子について解説します。
比較演算子は、値の大小の確認、文字列の比較などをするときに使う演算子です。
たとえば、次のようにIF文の分岐処理の条件などに使います。
代入演算子のサンプルコード:
Sub Test4() Dim intNum1 As Integer Dim intNum2 As Integer intNum1 = 1 intNum2 = 50 If intNum1 < intNum2 Then MsgBox "intNum2の方が大きい" Else MsgBox "intNum1の方が大きい" End If End Sub
実行結果:
サンプルの「intNum < intNum2」と書いている条件の「<」が比較演算子です。
いくつか種類があるので、表形式で一覧にしました。
No | 演算子 | 意味 | 例 | 結果 |
---|---|---|---|---|
1 | = | 等しい | 1 = 5 | FALSE |
2 | <> | 等しくない | 5 <> 1 | TRUE |
3 | > | 大きい | 1 > 5 | FALSE |
4 | < | 小さい | 1 < 5 | TRUE |
5 | >= | 以上 | 1 >= 5 | FALSE |
6 | <= | 以下 | 1 <= 5 | TRUE |
表に乗っているもの以外にも、StrComp関数、Like演算子を使って比較する方法もあります。
StrComp関数は完全一致で文字列を比較し、Like演算子は部分一致で文字列を比較するための演算子です。
それぞれ以下で詳しく解説しているので、気になる方は見てみてくださいね!
論理演算子
次に、論理演算子について解説します。
論理演算子は、条件を追加するための演算子です。
IF文の条件に2つ以上条件を付けたい場合に、使います。
論理演算子サンプルコード:
Sub Test5() Dim intNum1 As Integer Dim intNum2 As Integer intNum1 = 1 intNum2 = 50 If Not intNum1 = 5 Then MsgBox "intNum1は5ではありません" ElseIf intNum1 = 1 And intNum2 = 51 Then MsgBox "intNum1とintNum2どちらかの値がおかしいです" ElseIf intNum1 = 1 Or intNum2 = 51 Then MsgBox "intNum1とintNum2はどちらかの値が正しいです" End If End Sub
実行結果:
サンプルの「And」「Or」「Not」が論理演算子です。
使い方と意味について、表形式で一覧にしました。
No | 演算子 | 意味 | 例 | 結果 |
---|---|---|---|---|
1 | And | 論理積 | 5 > 1 And 2 <= 2 | TRUE |
2 | Or | 論理和 | 5 > 1 Or 5 <= 1 | TRUE |
3 | Not | 論理否定 | Not 5 > 1 | FALSE |
合わせて覚えると便利なIF文とは
ここまで演算子の使い方について解説してきましたが、サンプルコードのようにIF文とあわせて使うことが多いです。
IF文を使えば条件によって処理を分岐させることができるので、処理の幅が広がるのでおすすめです!
以下で詳しく解説しているので、気になる方は見てみてくださいね!
まとめ
今回は、演算子の意味・使い方について徹底的に解説しました。
計算処理、条件式などVBAで演算子を使うケースは多いです。
VBAの肝となる考え方なので、ぜひ使ってみてくださいね!