新しく質問する

VBAで「セルに何か入っている場合」

役に立った:0件
  • 質問者:noname#101292
  • 投稿日時:2006/08/25 22:55
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

EXCELでVBAを使いアプリケーションを作っています。

今「このセルに何か入っている(何でも良い。とにかく空でない)場合、この処理」という意味のプログラムを書きたいのですが、「このセルに何か入っている場合」の部分がどうしてもわかりません。null、isnull、emptyなど片っ端から試してみたり、逆に問題のセルが空欄の時にfalseになる変数を前もって設定して、その変数がtrueの時に処理させようとしたりしてみたのですが、すべてうまく行きませんでした。

解決法を教えていただけたら幸いです。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.5ベストアンサー10pt

  • 回答者:kabilunlun
  • 回答日時:2006/08/26 16:44

#4さんの言っているように、A1とB1が結合されているときはA1に値が入るので、下記のコードでよいと思います。
私が試してみた限りではうまくいきました。

If IsEmpty(Range("A1")) Then
MsgBox "AAA"
End If

通報する

この回答へのお礼

ありがとうございます。

おっしゃるとおりです。こんなところでミスっていたとは。

マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。

ありがとうございます。

おっしゃる通りだったようです。

マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。

VBA難しいです。

  • 参考になった:0件

No.4ベストアンサー20pt

  • 回答者:BLUEPIXY
  • 回答日時:2006/08/26 14:47

#1>結合してあるセルを指定しているので
結合してあるセルの値は、左上のセルの値になります。
なので、
Set a = Range("A1:B1")
ではなくて
Set a = Range("A1")
のように指定してください。

通報する

この回答へのお礼

ありがとうございます。

おっしゃる通りだったようです。

マクロの記録で罫線を引いていったら
Range("A1:B1").Select
というように記録されたので、
そう指定するものだとすっかり思い込んでいました。

VBAは難しいなぁ~。

  • 参考になった:0件
  • 回答者:BLUEPIXY
  • 回答日時:2006/08/26 04:10

Dim r As Range
Set r = Range("A1")

If r.Value <> Empty Then
'処理
End If
では、だめですか?
上記の場合
A1
=""
の様な式が入力されている場合、入力があるとは検知されませんが、そういう場合のことなのでしょうか

通報する

この回答への補足

ありがとうございます。
一番目の方への回答とほぼ同じ内容をお答えする事になりますが、
おっしゃるとおりにやってみると、
If r.Value <> Empty Then
の部分が黄色反転で実行エラー13です。

私も、どこがいけないのかわかりません。

  • 参考になった:0件
  • 回答者:kabilunlun
  • 回答日時:2006/08/25 23:12

IsBlank(対象セル)関数は使えませんか?

通報する

この回答への補足

ありがとうございます。

IsBlankは、EXCELのシート上で使う関数だと思っていました。
VBAで使う場合の例がちょっと見つからず、よくわかりませんでした。
ちなみに、今回のプログラムは、セルに何か入っていたら罫線を引くという性質のものなので、シート上での処理はできないと思います。

  • 参考になった:0件

条件を「セル<>""」としてできませんか?

通報する

この回答への補足

ありがとうございます。

私のつくっているものでは、結合してあるセルを指定しているので
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です。

何がいけないのか、わからないのですが・・・。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter