- ベストアンサー
VBA初心者がIF構文で値をチェックしてメッセージを表示する方法について
- VBA初心者の方がIF構文を使用して値をチェックし、メッセージを表示する方法についてお教えいただきたいです。
- エクセルのセルB1の値がFALSE以外の場合には、セルA1の値を消去して「再度入力してください」というメッセージを表示したいです。
- しかし、現在のコードではFALSEやTRUEの関係なく、常にセルA1の値が消去され、メッセージが表示されてしまいます。どのように修正すれば良いでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こうすればどうでしょう。 Dim テスト As Boolean テスト = Range("B1").Value If テスト <> True Then
その他の回答 (3)
- utun01
- ベストアンサー率40% (110/270)
若干質問内容とずれますが、 VBA使うならセルに計算式を入れる意味は無いのでは・・・? VBA内で計算して、falseならA1のセルを赤くするとか、 そういう風にした方がスマートな気がします。 まぁ、最終的に何をやりたいのかによりますけども。
お礼
回答ありがとうございました。 質問の内容自体があいまいで分かりづらかったと思います。すみません。 実はやりたかったことは、 緯度経度入力で小数点以下6桁入力の規則を作りたかったのです。 そして、VBAまだ3日なもので、、。VBA内で計算が分からず、 エクセル関数&VBAということになりました。 できればVBAでできると、余計なセルとか使わずスマートになるのだと思いますが、いかんせん知識が追いつかず。。。 これから頑張ります!
- Tacosan
- ベストアンサー率23% (3656/15482)
B1 が「A1をチェックしてFALSE/TRUEが出る計算式」だとしたら, B1の値がFalse以外の場合に、 A1の値を消して、「再度入力してください」と表示する。 Trueならそのまま。 は変です. False のときどうするの? さておき, 「"TRUE" という文字列」かどうかを比較したいの?
お礼
>False のときどうするの? いやまったく、、、お恥ずかしいです。 頭回っていませんでした。。。 やりたかったことは、とあるフォームで緯度経度を入力する際に 小数点以下6桁の規則を作りたかったのです。 なので、True/Falseが重要なのではなくて、上記目的が達成できれば 問題ありませんでした。 が、VBA知識がない私は計算式で小数点6桁以外はFalse、6桁ならTrueという返しを作り、それを参照して「再度入力してね」というMsgを。と思ったのです。 何はともあれ、No.3さんに助けていただき、達成できました!! そもそも論ですね。。。お騒がせしました。 ご回答ありがとうございました!
- Hirorin_20
- ベストアンサー率20% (136/648)
>B1:A1をチェックしてFALSE/TRUEが出る計算式 これは文字列でFALSE/TRUEを表示しているのではないですよ。 その式が真偽いずれかということです。 VBAでもIF文は真偽を聞くようにしなければなりません。
お礼
ふむふむ。ありがとうございます。 Data型がまだ身についていませんでした。 No.3さんので目からウロコ。。。恥ずかしいです。 こんなことで、、、と思いますが、随分勉強になりました。 もう絶対忘れないです。ありがとうございました!
お礼
まさに!!そうです、そうでした。。。 いやまったく、お恥ずかしい限り。。。 おかげで完成しました。 ありがとうございました!!