【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

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説