Home » エクセルマクロ・Excel VBAの使い方 » VBAで、もし空白ならばA1セルを、空白でないならB1セルを

VBAで、もし空白ならばA1セルを、空白でないならB1セルを

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2412(ビルド18305.20000クイック実行)ベータチャネル

「vba もし空白ならばa1空白でないならb1」
といった検索キーワードでアクセスがありました。

おそらく、Excel VBAの学習を始めたばかりの方による検索でしょう。

[スポンサードリンク]

「vba もし空白ならばa1空白でないならb1」
という検索キーワードでは、何が空白なのか、A1やB1はおそらくセルのことだと思うのですが、A1セル・B1セルをどうしたいのかがわかりませんが、参考になりそうなコードをご紹介しておきます。

もし空白ならばA1セル、空白でないならB1セルを処理するサンプルマクロ

以下のマクロ(Subプロシージャ)を標準モジュールに作成して、アクティブシートでA1セルやB1セルではないセルを選択しておいてから、ステップ実行してください。

Sub 変数が空白のときと空白でない場合の処理を確認する()
 Dim txt As String
 txt = "sample data"

 If txt = "" Then
  Range("A1").Select
  Range("A1").Value = "空白です!"
 Else
  Range("B1").Select
  Range("B1").Value = "空白ではありません。"
 End If

End Sub

ステップ実行は、拙著『いちばんやさしいExcelVBAの教本』でも解説しているとおりショートカットキー[F8]を使うのが便利です。

サンプルマクロをステップ実行したときの挙動

変数txtは、以下の行を実行後には空白ではありませんから、

 txt = "sample data"

必ず以下の処理に入ります。

 Else
  Range("B1").Select
  Range("B1").Value = "空白ではありません。"

B1セルが選択され、B1セルに文字列「空白ではありません。」と入力されます。

つづいて、

 txt = "sample data"

の行の先頭に「'」を入力し、コメントアウトしてから、再度ショートカットキー[F8]でステップ実行してください。

こんどは変数txtに値を入力していませんから、空白であるため、必ず以下の処理に入ります。

 If txt = "" Then
  Range("A1").Select
  Range("A1").Value = "空白です!"

A1セルが選択され、A1セルに文字列「空白です!」が入力されます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAで、もし空白ならばA1セルを、空白でないならB1セルを

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.