セル範囲を返すプロシージャ |
ユーザーにセルを選択させるため、inputboxメソッドを使ってみましたがどうしてもうまくできないことがあります。それはヘルプを参考に、次のように引数typeを8にしてrangeオブジェクトを返すようにした場合、 Set myRange = Application.InputBox(prompt := "セル範囲", type := 8) ダイアログボックスをキャンセルするとエラーが発生してしまいます。On
errorステートメントで回避しようとしても、無効な入力をした場合とキャンセルが区別できません。しかし、falseも返せるように引数をtype
:= 8+4にすると、今度はセルを選択できなくなってしまいます。 当方の目的は、マクロの実行中にそのマクロの実行先としてキーボードからアドレス |
下のNot TypeName(myCell) = "Nothing"の部分は,
Not myCell Is Nothing でい けると思います。(関数と思っていたけど,IsNothing(myCell)ではなかった。) Sub test() Dim myCell As Range Worksheets(1).Activate On Error Resume Next Set myCell = Application.InputBox( _ prompt:="セルを選択してください。", Type:=8) If Not TypeName(myCell) = "Nothing" Then disp myCell End If End Sub Sub disp(st As Range) MsgBox st.Value End Sub かいとう2 > 今組んでいるExcel97のマクロ上でユーザーにセルを選択させるため、inputboxメ |