誕生日にもらった意外なもの

VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません
改善策を教えてください。
debug.printで確認した感じX17の値を取得できていないような感じもします。


sub test()
if range("X7").value="false" then
rows(17).delete
end if
end sub

質問者からの補足コメント

  • 解決したので、ベストアンサーが選べるようになったら選ばせていただき質問は閉じようとおもいます。

      補足日時:2024/08/28 11:00

A 回答 (3件)

X7は小文字のfalseですか?


If Range("X7").Value = False Then
としたらどうでしょうか?

普通にfalseと入力すると自動的に大文字のFALSEになり、文字列としてのfalseではなくなると思うのですが。
    • good
    • 0
この回答へのお礼

できました!
ありがとうございます

お礼日時:2024/08/28 10:57

X7かX17か分かりませんが、セルの値はfalseという文字列ですか?


Excelセルの値は簡単に変換されるので、valueで取ると真偽値になっているかもしれません。文字列なら.textで取得する方法もありますが、何がしたいかですね。
    • good
    • 1
この回答へのお礼

X17の間違いです。失礼しました
他の方の回答で解決しました

お礼日時:2024/08/28 11:00

こんにちは



条件として何を判断したいのかが不明ですけれど・・

 >if range("X7").value="false" then
としているので、
X7セルの値が文字列の"false"となっている場合に、条件が成立します。
(X7セルの表示書式を文字列にして、false と入力してある状態)

もしかすると、X7に表示されているのは論理値ではないのでしょうか?
論理値の内容を判定したいのであれば、右辺はクォーテーションなしでTRUE/FALSE のどちらかになります。
(VBEに記述すると、小文字入力でも大文字に変換されるはず)
    • good
    • 0
この回答へのお礼

詳しくありがとうございます。
こちらに質問する際は手打ちでやったもので、実際は大文字です。
ダブルクォーテーション無しにしたら出来ました

お礼日時:2024/08/28 10:59

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A