【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の肝となる考え方なので、ぜひ使ってみてくださいね!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!

侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー