人生のプチ美学を教えてください!!

VBA超初心者です。。。
B1の値がFalse以外の場合に、
A1の値を消して、「再度入力してください」と表示する。
Trueならそのまま。

というものを作りたいのですが。
どうしてもFALSE、TRUE関係なく
A1の値が消去&メッセージが表示されてしまいます。

これだけで1時間以上。。。

みなさまどうぞ私に何か知恵を授けてください!!


-----------------------
Sub チェック()

Dim テスト As String
テスト = Range("B1").Value

If テスト <> "TRUE" Then
MsgBox "再度入力してください"
Range("A1").ClearContents
End If

End Sub

-----------------------
【エクセル内容】

A1:数字
B1:A1をチェックしてFALSE/TRUEが出る計算式

-----------------------

A 回答 (4件)

こうすればどうでしょう。



Dim テスト As Boolean
テスト = Range("B1").Value

If テスト <> True Then
    • good
    • 0
この回答へのお礼

まさに!!そうです、そうでした。。。
いやまったく、お恥ずかしい限り。。。

おかげで完成しました。
ありがとうございました!!

お礼日時:2012/03/22 02:41

若干質問内容とずれますが、


VBA使うならセルに計算式を入れる意味は無いのでは・・・?
VBA内で計算して、falseならA1のセルを赤くするとか、
そういう風にした方がスマートな気がします。
まぁ、最終的に何をやりたいのかによりますけども。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
質問の内容自体があいまいで分かりづらかったと思います。すみません。

実はやりたかったことは、
緯度経度入力で小数点以下6桁入力の規則を作りたかったのです。
そして、VBAまだ3日なもので、、。VBA内で計算が分からず、
エクセル関数&VBAということになりました。

できればVBAでできると、余計なセルとか使わずスマートになるのだと思いますが、いかんせん知識が追いつかず。。。

これから頑張ります!

お礼日時:2012/03/22 02:31

B1 が「A1をチェックしてFALSE/TRUEが出る計算式」だとしたら,


B1の値がFalse以外の場合に、
A1の値を消して、「再度入力してください」と表示する。
Trueならそのまま。
は変です. False のときどうするの?

さておき, 「"TRUE" という文字列」かどうかを比較したいの?
    • good
    • 0
この回答へのお礼

>False のときどうするの?
いやまったく、、、お恥ずかしいです。
頭回っていませんでした。。。

やりたかったことは、とあるフォームで緯度経度を入力する際に
小数点以下6桁の規則を作りたかったのです。
なので、True/Falseが重要なのではなくて、上記目的が達成できれば
問題ありませんでした。

が、VBA知識がない私は計算式で小数点6桁以外はFalse、6桁ならTrueという返しを作り、それを参照して「再度入力してね」というMsgを。と思ったのです。
何はともあれ、No.3さんに助けていただき、達成できました!!

そもそも論ですね。。。お騒がせしました。
ご回答ありがとうございました!

お礼日時:2012/03/22 02:38

>B1:A1をチェックしてFALSE/TRUEが出る計算式


これは文字列でFALSE/TRUEを表示しているのではないですよ。
その式が真偽いずれかということです。
VBAでもIF文は真偽を聞くようにしなければなりません。
    • good
    • 0
この回答へのお礼

ふむふむ。ありがとうございます。
Data型がまだ身についていませんでした。

No.3さんので目からウロコ。。。恥ずかしいです。

こんなことで、、、と思いますが、随分勉強になりました。
もう絶対忘れないです。ありがとうございました!

お礼日時:2012/03/22 02:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!