|
▼しま さん:
>もし、範囲内に文字があれば、文字が入っているセルをメッセージボックスとして表示し、文字がなければ、メッセージボックスが出ないようにしたいと考えています。
>と書いたのですが、どこがまずいのでしょうか?
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
|
|