Excel VBA質問箱 IV

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

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


15779 / 76734 ←次へ | 前へ→

【66430】Re:数字か文字かを確認
発言  kanabun  - 10/9/3(金) 23:40 -

引用なし
パスワード
   ▼しま さん:

>もし、範囲内に文字があれば、文字が入っているセルをメッセージボックスとして表示し、文字がなければ、メッセージボックスが出ないようにしたいと考えています。


>と書いたのですが、どこがまずいのでしょうか?

SpecialCellsメソッドは Excelで [F5]キーを押すと出てくる
Goto(ジャンプ)機能のなかにある【セル選択】ボタンのことです。
[セル選択...](SpecialCells) ボタンを押すと 何を選択するか
オプションボタンがたくさん出てきますね
 その中で ●定数セル
       レ 文字列
にチェックを入れて [OK] を押したときの動作と同じことを
VBAでしているわけです。

たとえば 下の例では 現在選択されているセル範囲(Selection)に対して
> Set r = Selection.SpecialCells(xlConstants, xlTextValues)
とSpecialCellsメソッドを発行していますが、
これは 該当するセルが見つかると 左辺の変数r にセルがセットされます。
ところが 該当セルがひとつもないと SpecialCellsメソッドはエラーを
返します。
だから、該当セルがなかったときもエラーで中断しないように

On Error Resume Next
 Set r = ..........
On error goto 0

としています。こうしておくと、該当セルがなかったばあいは
変数r が nothing のままなので、このときは実行を Exit します。
範囲が決まっているなら、
そこの Selectionのところを Range("D12:V62") に置き換えてください。

'------------------------------------
Sub 文字のセル発見()
 Dim r As Range

 On Error Resume Next
  Set r = Selection.SpecialCells(xlConstants, xlTextValues)
 On Error GoTo 0
 If r Is Nothing Then Exit Sub
 
 MsgBox r.Address(0, 0)
End Sub
2 hits

【66424】数字か文字かを確認 しま 10/9/3(金) 20:55 質問
【66425】Re:数字か文字かを確認 kanabun 10/9/3(金) 21:12 発言
【66427】Re:数字か文字かを確認 しま 10/9/3(金) 22:19 質問
【66430】Re:数字か文字かを確認 kanabun 10/9/3(金) 23:40 発言

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