01-VBA

演算子|Excel VBA (Part.2)【比較演算子】基本編 | 現役エンジニア&プログラミングスクール講師

目標

VBAの比較演算子について基本を理解して利用できる。

演算子には算術演算子・比較演算子・論理演算子・代入演算子・連結演算子があります。この記事では制御構文で利用する比較演算子について記載しています。

比較演算子の概要と利用方法

比較演算子とは

制御構文内の条件に利用される演算子です。

制御構文の条件には『比較演算子』や『単項演算子(論理演算子のNOT)』が頻繁に利用されます。(※条件には演算子が利用されない場合もあります)

比較演算の利用方法

比較演算子は左辺と右辺を比べる演算子です。表の太文字の部分が比較演算子となります。

比較演算子比較演算子の意味
左辺 = 右辺左辺と右辺の値が等しい
左辺 > 右辺左辺の値が右辺の値より大きい
左辺 < 右辺左辺の値が右辺の値より小さい
左辺 >= 右辺左辺の値が右辺の値以上
左辺 <= 右辺左辺の値が右辺の値以下
左辺 <> 右辺左辺と右辺の値が等しくない

シンプルな「比較」を考えてみる

ここではシンプルな比較をいくつか考えてみたいと思います。

inputBoxから入力された文字列が「ほわほわ」と等しい
inputBoxからの入力が「空」かキャンセル
inputBoxからの入力が数値の5以上
セルA1から取得した数値が5000よりも大きい
セルB5とセルC5の値を比較してセルB5の方がセルC5以下
inputBoxからの入力が数値の0と等しくない
アクティブセルが「空」でない

一例ですが、次のような表現になります。判断基準とする条件(今回は右辺の「ほわほわ」)と比較対象とする値(今回は左辺の「変数」)を比較します。条件の成立は入力値によって変化するので基本的には変数を利用して比較すると覚えておくと良いです。※右辺左辺の両方とも変数で値を持ってくる場合もあります。

シンプルな「比較」のサンプルプロシージャ

プロシージャの実行方法はこちらを参考にしてください。

初めてのExcelVBA:プロシージャの記述と実行 | 現役エンジニア&プログラミングスクール講師ExcelVBAのモジュールとプロシージャについて確認してその生成方法などを説明...
inputBoxから入力された文字列が「ほわほわ」と等しい

If InputChar = “ほわほわ” Then
※入力された文字列を変数(InputChar)に代入しているのがポイントです。
Option Explicit
Sub inputCharFunc()
    Dim InputChar As String
    InputChar = InputBox("文字を入力")
    '上で「ほわほわ」と入力したかしないかで条件が分かれる
    
    If InputChar = "ほわほわ" Then
        MsgBox "条件が合いました。"
    End If
End Sub
inputBoxからの入力が「空」かキャンセル

If InputChar = “” Then
※入力された文字列を変数(InputChar)に代入しているのがポイントです。
Option Explicit
Sub inputCharFunc()
    Dim InputChar As String
    InputChar = InputBox("文字を入力")
    '上で空文字かキャンセルボタンが押下された条件時
    
    If InputChar = "" Then
        MsgBox "条件が合いました。"
    End If
End Sub
inputBoxからの入力が数値の5以上

If InputNum >= 5 Then
※入力された数値を変数(InputNum)に代入しているのがポイントです。
Option Explicit
Sub inputCharFunc()

    Dim InputNum As Integer
    InputNum = InputBox("数字を入力")
    '上で5以上の数字を入力したかが条件となります
    
    If InputNum >= 5 Then
        MsgBox "条件が合いました。"
    End If
End Sub
セルA1から取得した数値が5000よりも大きい

If InputNum >= 5000 Then
※セルA1から取得した数値を変数(InputNum)に代入しているのがポイントです。
Option Explicit
Sub inputCharFunc()

    Dim InputNum As Integer
    Worksheets("sheet1").Activate
    InputNum = Range("A1").Value

    If InputNum >= 5000 Then
        MsgBox "条件が合いました。"
    End If
End Sub
セルB5とセルC5の値を比較してセルB5の方がセルC5以下

If Range(“B5”).Value <= Range(“C5”).Value Then
※セルの値を今回は変数を利用せずにそのまま比較しています。基本的には変数に代入して比較を行いますが、こういった処理も可能です。
Option Explicit
Sub inputCharFunc()
    If Range("B5").Value <= Range("C5").Value Then
        MsgBox "条件が合いました。"
    End If
End Sub
inputBoxからの入力が数値の0と等しくない

If InputNum <> 0 Then
※<>で右の値と等しくないという意味になります。
Option Explicit
Sub inputCharFunc()
    Dim InputChar As Integer
    InputChar = InputBox("文字を入力")

    If InputChar <> 0 Then
        MsgBox "条件が合いました。"
    End If
End Sub
アクティブセルが「空」でない

If InputChar <> “” Then
※<>と””が連続で記述されているので意味が分かりづらいですが、
これで「””(カラ)<>(でない)」を表現しています。

今回は以上です。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

ExcelVBAのActiveSheetプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

クラスの利用方法|Excel VBA(番外編)| 現役エンジニア&プログラミングスクール講師

2023年2月19日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の 配列(静的配列)| 現役エンジニア&プログラミングスクール講師

2022年12月24日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAの「Range & Valueプロパティ」| 現役エンジニア&プログラミングスクール講師

2022年9月9日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「オブジェクト活用」(Part.1)【ワークシートと行列の活用編】| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

初めてのExcelVBA:プロシージャの記述と実行 | 現役エンジニア&プログラミングスクール講師

2022年8月7日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site