【ExcelVBA入門】計算や条件式を作るための演算子の使い方を徹底解説!

皆さんは、VBAで演算子を使ったことがありますか?

計算や条件を作るときには使うのが演算子なのですが、詳しく使い方を覚えている人は少ないのではないでしょうか。

そこで今回は、

・演算子とは

といった基礎的なことから、

・演算子ごとの意味・使い方

・演算子とあわせて覚えると便利な関数

・演算子とセットで覚えると便利なIF文の使い方

といった応用的な方法まで、徹底的に解説します!

演算子とは

演算子とは、wikipediaで以下のように解説されています。

演算子(えんざんし、英: operator symbol, operator name)は、数式やコンピュータプログラミング言語などで、各種の演算を表わす記号・シンボルである。

引用:https://ja.wikipedia.org/wiki/演算子

簡単に言うと、コンピューターの計算に使う「+」「-」や、値を比較する時に使われる「<」「>」のような記号のことです。

演算子と知らずに使っている方も多いと思いますが、演算子についてまとめて知っておくと頭も整理されるのでおすすめです!

演算子の種類ごとの使い方

演算子には、大きく分けて5つの種類があります。

それぞれ詳しく解説しますね。

算術演算子

最初に、算術演算子について解説します。

算術演算子は、足し算、引き算、掛け算、割り算などの計算に使う演算子です。

例えば、次のように計算で使います。

算術演算子サンプルコード:

Sub Test1()
  MsgBox 1 + 2
End Sub

実行結果:

1と2を足したサンプルですが、間に書いている「+」が算術演算子です。

いくつか種類があるので、表形式で一覧にしました。

No演算子意味結果
1+足し算1 + 56
2-引き算5 - 14
3*掛け算1 * 55
4/割り算10 / 25
5\割り算の商10 \ 33
6Mod割り算の余り10 Mod 31
7^べき乗2 ^ 532

割り算の余りを計算は、Mod関数を使います。

Mod関数については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【ExcelVBA入門】割り算の余りを求めるためのMod関数の使い方とは
更新日 : 2019年5月20日

文字列演算子

次に、文字列演算子について解説します。

文字列演算子は、文字列結合するための演算子です。

文字列の間にアンド(&)を入れることで、つぎのように文字列を簡単に結合することができます。

文字列演算子サンプルコード:

Sub Test2()
  MsgBox "私の名前は" & "侍エンジニア1です。"
End Sub

実行結果:

アンド(&)を使えば、とても簡単に文字列結合することができます。

ただ、文字列の数が多くなるとアンド(&)を使った文字列結合だと処理に時間がかかってしまいます。

高速に文字列結合したい場合は、Mid関数、Join関数がおすすめです!

Mid関数は文字列を置換して結合し、Join関数は一度配列にデータを入れてから結合することができます。

以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】文字列の結合を高速にする方法(Mid、Join)
更新日 : 2019年4月18日

代入演算子

次に、代入演算子について解説します。

代入演算子は、変数に値を入れるための演算子です。

変数名のあとに、イコール(=)を付けることで値を入れることができます。

代入演算子のサンプルコード:

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 = 5FALSE
2<>等しくない5 <> 1TRUE
3>大きい1 > 5FALSE
4<小さい1 < 5TRUE
5>=以上1 >= 5FALSE
6<=以下1 <= 5TRUE

表に乗っているもの以外にも、StrComp関数、Like演算子を使って比較する方法もあります。

StrComp関数は完全一致で文字列を比較し、Like演算子は部分一致で文字列を比較するための演算子です。

それぞれ以下で詳しく解説しているので、気になる方は見てみてくださいね!

【ExcelVBA入門】文字列を完全一致・部分一致で比較する方法とは
更新日 : 2019年5月4日
【VBA入門】Like演算子(ワイルドカード、エスケープ、否定)
更新日 : 2019年4月19日

論理演算子

次に、論理演算子について解説します。

論理演算子は、条件を追加するための演算子です。

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演算子意味結果
1And論理積5 > 1 And 2 <= 2TRUE
2Or論理和5 > 1 Or 5 <= 1TRUE
3Not論理否定Not 5 > 1FALSE

合わせて覚えると便利なIF文とは

ここまで演算子の使い方について解説してきましたが、サンプルコードのようにIF文とあわせて使うことが多いです。

IF文を使えば条件によって処理を分岐させることができるので、処理の幅が広がるのでおすすめです!

以下で詳しく解説しているので、気になる方は見てみてくださいね!

まとめ

今回は、演算子の意味・使い方について徹底的に解説しました。

計算処理、条件式などVBAで演算子を使うケースは多いです。

VBAの肝となる考え方なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。