目標
VBAの比較演算子について基本を復習し発展的な利用ができる
この記事では前回の演算子Part.2に続いて制御構文で利用する比較演算子について書いています。Part.2ではシンプルな条件を例にしていましたが、ここでは、少し変わった条件の書き方について触れてみたいと思います。
比較演算子の復習
条件に利用される演算子の復習
制御構文の条件には『比較演算子』や『単項演算子(論理演算子のNOT)』が頻繁に利用されます。(※条件には演算子が利用されない場合もあります)
条件に用いられる「比較演算」の復習
比較演算子は左辺と右辺を比べる演算子です。具体的には以下の表の太文字の部分が比較演算子となります。
比較演算子 | 比較演算子の意味 |
左辺 = 右辺 | 左辺と右辺の値が等しい |
左辺 > 右辺 | 左辺の値が右辺の値より大きい |
左辺 < 右辺 | 左辺の値が右辺の値より小さい |
左辺 >= 右辺 | 左辺の値が右辺の値以上 |
左辺 <= 右辺 | 左辺の値が右辺の値以下 |
左辺 <> 右辺 | 左辺と右辺の値が等しくない |
比較演算子の発展的な利用方法を確認する(前編)
少し変わった「条件」を考えてみる(前編)
ここでは前回とは違って少し変わった条件の書き方をいくつか考えてみたいと思います。このうち今回の記事では前半4つをプロシージャを作成して確認していきます。残りの4つは次回の記事で作成していきます。
IsEmpty関数を利用して指定セルの中が「空」の場合をTrueとする。 →セルB5が空の場合を条件としています。 |
入力された値が数値として変換できない場合(数値でない場合)をTrueとする。 「Not 」 と「IsNumeric関数」を利用して確認。 →numBox変数の値が数値として変換できない場合。 |
入力された値が日付の場合をTrueとする。 「IsDatec関数」を利用して確認。 →dateBox変数に入力された値が日付かを確認する。 |
for文(繰り返し)の条件としてセルの一定の選択範囲のすべてに対して処理を行う。 →変数MyRangeをRange型として宣言して、条件文で表のH列の最後までを条件とする。 |
選択したセルが「空」の場合をTrueとする。 →Target変数を利用した条件を記述。 |
MsgBoxのボタンの定数を利用する条件。 →vbYesとvbNoが押された場合で条件を分ける。 |
FileSystemObjectを利用してフォルダが存在しているかどうかを条件とする。 FileSystemObjectはOSのフィル管理のプログラムを利用するためのプログラム。 →FileSystemObjectのFolderExistsメソッドを利用して条件を記述。 |
ユーザーフォームの該当するオプションボタンが選択された場合。 →OptionButton1.ValueがTrueの場合。 |
条件の書き方としては、次のようになります。一例ではありますが、よく利用する書き方でもあるので、知っておくと便利です。
IsEmpty関数を利用して指定セルの中が「空」の場合をTrueとする。 →セルB5が空の場合を条件としています。 |
'→下のプロシージャではCellsを利用して5行目2列目のB5を指定しています。
Sub UseIsEmpty()
Dim num1 As Integer, num2 As Integer
num1 = 2
num2 = 5
If IsEmpty(Cells(num1, num2)) Then
MsgBox "条件に合っています。"
End If
End Sub
実行結果
セルB5に値が入っているかいないかで変わります。
![](https://howahowablog.com/wp-content/uploads/2022/10/B5に値が存在するかしないかの条件.jpg)
入力された値が数値として変換できない場合(数値でない場合)をTrueとする。 「Not 」 と「IsNumeric関数」を利用して確認。 →numBox変数の値が数値として変換できない場合。 |
Sub UseIsNumeric()
Dim numBox
numBox = InputBox("値を入力して下さい")
If Not IsNumeric(numBox) Then
MsgBox "条件に合いました。"
Else
MsgBox "数字が入力されました。"
End If
End Sub
実行をすると入力ボックスが表示されます。
数値を入力した場合
![](https://howahowablog.com/wp-content/uploads/2022/10/入力ボックスに数値が入力されたかの条件.jpg)
実行結果
![](https://howahowablog.com/wp-content/uploads/2022/10/入力ボックスに数値が入力されたかの条件2.jpg)
入力された値が日付の場合をTrueとする。 「IsDatec関数」を利用して確認。 →dateBox変数に入力された値が日付かを確認する。 |
Sub UseIsDate()
Dim dateBox
dateBox = Range("A1")
If IsDate(dateBox) Then
MsgBox "日付が入力されています。"
Else
MsgBox "日付ではありません。"
End If
End Sub
実行結果
セルA1に日付が入力されている場合
![](https://howahowablog.com/wp-content/uploads/2022/10/A1に日付が入力されているか.jpg)
for文(繰り返し)の条件としてセルの一定の選択範囲のすべてに対して処理を行う →変数MyRangeをRange型として宣言して、条件文で表のH列の最後までを条件とする |
Sub UseForEach()
Dim MyRange As Range
For Each MyRange In Range(Range("H4"), Range("H4").End(xlDown))
If MyRange.Value >= 100 Then
MyRange.Interior.Color = RGB(255, 0, 0)
End If
Next MyRange
End Sub
実行結果
シートは気象庁のデータを利用したものです。地点ごとの雨量について昨日までの観測史上1位の値で100mmを超える降水量についてセルが赤に塗りつぶすようにプログラムを組んでいます。条件は「H列の全てのセル」についてです。
![](https://howahowablog.com/wp-content/uploads/2022/10/for文内の条件-1024x739.jpg)
今回は以上です。
残り4つのプロシージャについては次回記事の内容になります。
![](https://howahowablog.com/wp-content/uploads/2022/09/EXCEL-VBA-おすすめ書籍5選-320x180.jpg)
初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。
![](https://howahowablog.com/wp-content/uploads/2022/04/Google-Chrome-:ブックマー-Microsoft-Edge:お気に入り-登録・削除方法-320x180.jpg)
「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
![](https://howahowablog.com/wp-content/uploads/2022/12/パソコン選び-320x180.jpg)
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...