VBAで「セルに何か入っている場合」
EXCELでVBAを使いアプリケーションを作っています。
今「このセルに何か入っている(何でも良い。とにかく空でない)場合、この処理」という意味のプログラムを書きたいのですが、「このセルに何か入っている場合」の部分がどうしてもわかりません。null、isnull、emptyなど片っ端から試してみたり、逆に問題のセルが空欄の時にfalseになる変数を前もって設定して、その変数がtrueの時に処理させようとしたりしてみたのですが、すべてうまく行きませんでした。
解決法を教えていただけたら幸いです。
回答(5件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.5ベストアンサー10pt
#4さんの言っているように、A1とB1が結合されているときはA1に値が入るので、下記のコードでよいと思います。
私が試してみた限りではうまくいきました。
If IsEmpty(Range("A1")) Then
MsgBox "AAA"
End If
この回答へのお礼
ありがとうございます。
おっしゃるとおりです。こんなところでミスっていたとは。
マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。
ありがとうございます。
おっしゃる通りだったようです。
マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。
VBA難しいです。
No.4ベストアンサー20pt
#1>結合してあるセルを指定しているので
結合してあるセルの値は、左上のセルの値になります。
なので、
Set a = Range("A1:B1")
ではなくて
Set a = Range("A1")
のように指定してください。
この回答へのお礼
ありがとうございます。
おっしゃる通りだったようです。
マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。
VBAは難しいなぁ~。
Dim r As Range
Set r = Range("A1")
If r.Value <> Empty Then
'処理
End If
では、だめですか?
上記の場合
A1
=""
の様な式が入力されている場合、入力があるとは検知されませんが、そういう場合のことなのでしょうか
この回答への補足
ありがとうございます。
一番目の方への回答とほぼ同じ内容をお答えする事になりますが、
おっしゃるとおりにやってみると、
If r.Value <> Empty Then
の部分が黄色反転で実行エラー13です。
私も、どこがいけないのかわかりません。
IsBlank(対象セル)関数は使えませんか?
この回答への補足
ありがとうございます。
IsBlankは、EXCELのシート上で使う関数だと思っていました。
VBAで使う場合の例がちょっと見つからず、よくわかりませんでした。
ちなみに、今回のプログラムは、セルに何か入っていたら罫線を引くという性質のものなので、シート上での処理はできないと思います。
条件を「セル<>""」としてできませんか?
この回答への補足
ありがとうございます。
私のつくっているものでは、結合してあるセルを指定しているので
Rangeを使っていますが、
If Range("A1:B1")<>"" then
'処理
Endif
とするとまず一行目が黄色反転で、実行エラー13。
変数の設定をしていないから怒られたのかなあと
変数設定をしてみて
Dim a As Range
Set a = Range("A1:B1")
If a.value <> "" Then
'処理
End If
としてみたのですが、
これもやっぱりIf a.value <> "" Thenが
黄色反転で実行エラー13です。
何がいけないのか、わからないのですが・・・。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











