こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA 2つのセルの両方に記入しないと空欄

お世話になります。
VBAでの質問です。

(1)下記でA1が空欄ならメッセージボックスで"未記入箇所があります。"とでますが、
 A1、B1のどちらかに文字が入っていれば
 メッセージボックスを表示させたいです。

※どちらも未記入、どちらも記入の場合はメッセージなしです。

If Application.CountBlank(Range("A1")) Then
MsgBox "未記入箇所があります。"
Exit Sub
End If

もしくは

(2)A1に『111』B1に『』と、どちらか未記入の場合C1は空欄になる
 計算式を教えて頂きたいです。

 どちらも未記入、どちらも記入の場合は何かC1に文字が入る計算式
 (C1への入力は何でも良いです)

((1)が不可能な場合、(2)のC1を(1)のメッセージボックスにあてます)

※A1,B1の入力文字は数字や文字など多種
※A1,B1,C1のセルは離れています。
※『』は空欄の意味です。

よろしくお願い致します。

投稿日時 - 2019-05-06 12:30:54

QNo.9614093

すぐに回答ほしいです

質問者が選んだベストアンサー

(1)
  If [A1] = "" Xor [B1] = "" Then
    MsgBox "未記入箇所があります。"
  End If

(2) =IF(XOR(A1="",B1=""),"","どちらも未記入、又はどちらも記入です")

COUNTBLANKは離れていると使えないので、XOR のほうがいいでしょう。

投稿日時 - 2019-05-06 13:49:12

お礼

完璧です!!
自分したかった事が出来ました^^

本当に助かりました。
ありがとうございます!!

投稿日時 - 2019-05-06 22:03:00

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

一行で収めるなら
If cells(1,1)="" xor cells(2,1)="" Then
でいいんじゃないでしょうか。

私ならソースを見た時に
(※どちらも未記入、どちらも記入の場合はメッセージなしです。)
がわかりやすいように
elseifを使用して複数行にします。

投稿日時 - 2019-05-06 14:01:19

あなたにオススメの質問