Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19612 / 76732 ←次へ | 前へ→

【62550】私なにかぼけぼけな誤解してるのかなあ
発言  つん  - 09/7/29(水) 16:59 -

引用なし
パスワード
   ▼T-K さん:

>1.
>On Errorでサンドイッチした
>Set r = Worksheets("Sheet1").Range("AB3,AC3").SpecialCells(xlCellTypeBlanks)
>に入るべき該当セルがなくて、エラーが発生する。
>
>2.
>「r」には何も入ってないまま、If文に突入。

ここまでOKやと思います。めいび〜


>3.
>If Not r Is Nothing Thenは、Nothingをrに入れてIsで比較。

なんで、「Nothingをrに入れて」になるんですか?
空白セルがないこと前提なんで、入れるまでもなく、
r Is Nothing 状態です。
第一、「If Not r Is Nothing Then」で、変数rの状態を判断してるんやから、その中でrの状態いじったらあかんやんか。
というか、いじれませんけど^^;

If Not r Is Nothing Then でわかりづらかったら、
If Not (r Is Nothing) Then
にしたほうがわかりやすいかな?

>r←NothingならTrueでif文以下の処理を実行。
>がNotゆえTrueとFalseが反転。rはNothingでないならTrueとしてIf文以下を実行。
>ここで、rはRange型かつブランクセルプロパティとして既にSetしているから、
>rはNothingではない→rは値が入っている、として処理を実行する。

言うてはる意味わかんないんですが、
単純に、

空白セルがなかった→ r に代入されるセルがなくて、値が入らない(Nothing)
まま→ If Not (r Is Nothing) Then で通らずに処理されない。

と考えたらいいんじゃないでしょうか?

>
>4.
>ということは、On Errorでエラー(rはブランクセルだ)を無視(突破?)し、
>If Not文に入る前に「rには値が入っているぞ」と
>Set(宣言?)しなければならないことに・・・。

なんで?
そもそも
If Not r Is Nothing Then
は、「rには値が入っているかどうか?」を判定しているんだから、
その前に、「Set(宣言?)」しちゃ、意味ないやんか。

>5.質問
>On ErrorとIf Not間には、rはどうオブジェクト指定すればよいのでしょうか。

必要ないです。
でも、そこでそちらで何故かエラーが出るから、そう考えられたんでしょねえ・・・なんでかなあ?

えーっとですね。

新規のブックの標準モジュールに

Sub test()

 Dim r As Range
  
'チェック前に一度、指定セル箇所(飛び飛びのセル)をクリアする
 Worksheets("Sheet1").Range("AB3,AC3").Interior.ColorIndex = 0
 
  On Error Resume Next
  Set r = Worksheets("Sheet1").Range("AB3,AC3").SpecialCells(xlCellTypeBlanks)
  On Error GoTo 0
  
 If Not (r Is Nothing) Then
  
    r.Interior.ColorIndex = 3
    MsgBox ("赤いセルを入力して下さい")
  End If
    
  Set r = Nothing

End Sub

で、一度試してみてください。


すみません。
私も、他の回答者さまほど達人ではなく、
どこか落とし穴を見落としてるのかもしれません・・・
でも、他の人もこの質問を見てくれてると思うから、あんまりほげほげなことしてたら、指摘してくれると思うねんけど・・・

151 hits

【62397】IF文でBLANKセルを選択し、その条件次第でそのセルに着色したいです T-K 09/7/16(木) 15:45 質問
【62398】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/16(木) 16:56 回答
【62401】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/17(金) 12:06 質問
【62402】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/17(金) 12:45 回答
【62403】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/17(金) 15:06 お礼
【62449】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/22(水) 17:28 質問
【62450】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/22(水) 17:46 発言
【62468】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/23(木) 9:35 お礼
【62484】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/24(金) 15:32 質問
【62488】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/24(金) 23:59 回答
【62508】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/27(月) 17:24 質問
【62509】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/27(月) 17:45 発言
【62512】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/27(月) 19:13 発言
【62520】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/28(火) 15:09 お礼
【62535】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/29(水) 10:55 質問
【62536】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/29(水) 11:31 発言
【62540】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/29(水) 13:00 質問
【62541】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/29(水) 13:21 発言
【62546】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/29(水) 16:00 質問
【62547】Re:IF文でBLANKセルを選択し、その条件次第... もも 09/7/29(水) 16:42 発言
【62549】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/29(水) 16:54 発言
【62550】私なにかぼけぼけな誤解してるのかなあ つん 09/7/29(水) 16:59 発言
【62552】Re:IF文でBLANKセルを選択し、その条件次第... もも 09/7/29(水) 17:54 発言
【62556】Re:IF文でBLANKセルを選択し、その条件次第... bykin 09/7/29(水) 22:33 発言
【62558】Re:IF文でBLANKセルを選択し、その条件次第... もも 09/7/30(木) 8:52 発言
【62559】Re:IF文でBLANKセルを選択し、その条件次第... つん 09/7/30(木) 9:53 発言
【62561】Re:IF文でBLANKセルを選択し、その条件次第... T-K 09/7/30(木) 17:24 お礼

19612 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free