• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF構文の確認依頼/FalseTrue解が同じに!)

VBA初心者がIF構文で値をチェックしてメッセージを表示する方法について

このQ&Aのポイント
  • VBA初心者の方がIF構文を使用して値をチェックし、メッセージを表示する方法についてお教えいただきたいです。
  • エクセルのセルB1の値がFALSE以外の場合には、セルA1の値を消去して「再度入力してください」というメッセージを表示したいです。
  • しかし、現在のコードではFALSEやTRUEの関係なく、常にセルA1の値が消去され、メッセージが表示されてしまいます。どのように修正すれば良いでしょうか?

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

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.3

こうすればどうでしょう。 Dim テスト As Boolean テスト = Range("B1").Value If テスト <> True Then

oo_mosaki
質問者

お礼

まさに!!そうです、そうでした。。。 いやまったく、お恥ずかしい限り。。。 おかげで完成しました。 ありがとうございました!!

その他の回答 (3)

  • utun01
  • ベストアンサー率40% (110/270)
回答No.4

若干質問内容とずれますが、 VBA使うならセルに計算式を入れる意味は無いのでは・・・? VBA内で計算して、falseならA1のセルを赤くするとか、 そういう風にした方がスマートな気がします。 まぁ、最終的に何をやりたいのかによりますけども。

oo_mosaki
質問者

お礼

回答ありがとうございました。 質問の内容自体があいまいで分かりづらかったと思います。すみません。 実はやりたかったことは、 緯度経度入力で小数点以下6桁入力の規則を作りたかったのです。 そして、VBAまだ3日なもので、、。VBA内で計算が分からず、 エクセル関数&VBAということになりました。 できればVBAでできると、余計なセルとか使わずスマートになるのだと思いますが、いかんせん知識が追いつかず。。。 これから頑張ります!

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

B1 が「A1をチェックしてFALSE/TRUEが出る計算式」だとしたら, B1の値がFalse以外の場合に、 A1の値を消して、「再度入力してください」と表示する。 Trueならそのまま。 は変です. False のときどうするの? さておき, 「"TRUE" という文字列」かどうかを比較したいの?

oo_mosaki
質問者

お礼

>False のときどうするの? いやまったく、、、お恥ずかしいです。 頭回っていませんでした。。。 やりたかったことは、とあるフォームで緯度経度を入力する際に 小数点以下6桁の規則を作りたかったのです。 なので、True/Falseが重要なのではなくて、上記目的が達成できれば 問題ありませんでした。 が、VBA知識がない私は計算式で小数点6桁以外はFalse、6桁ならTrueという返しを作り、それを参照して「再度入力してね」というMsgを。と思ったのです。 何はともあれ、No.3さんに助けていただき、達成できました!! そもそも論ですね。。。お騒がせしました。 ご回答ありがとうございました!

回答No.1

>B1:A1をチェックしてFALSE/TRUEが出る計算式 これは文字列でFALSE/TRUEを表示しているのではないですよ。 その式が真偽いずれかということです。 VBAでもIF文は真偽を聞くようにしなければなりません。

oo_mosaki
質問者

お礼

ふむふむ。ありがとうございます。 Data型がまだ身についていませんでした。 No.3さんので目からウロコ。。。恥ずかしいです。 こんなことで、、、と思いますが、随分勉強になりました。 もう絶対忘れないです。ありがとうございました!

関連するQ&A

専門家に質問してみよう