みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

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

あなたにオススメの質問