Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2007)
InputBoxメソッドでセル範囲を取得する際のキャンセル処理
投稿日時: 17/11/15 00:20:36
投稿者: もこな2

いつもお世話になっております。
 
件名のとおりなのですが、InputBoxメソッドでセル範囲を取得するにはいかのようなコードになるかと思うのですが、このときにキャンセルを押されたら処理を中断させるようにするにはどうしたらよいのでしょうか

Sub Sample()
    Dim MyRange As Range
    Set MyRange = Application.InputBox("セル範囲を指定してください", Type:=8)
End Sub

現状だと、このコードでキャンセルボタンを押すと「オブジェクトが必要です」とエラーになります。
InputBoxメソッドでキャンセルボタンが押された場合、False(論理値)が返るということまでわかったんですが、どのように受け取ればいいのかわからないのでご教授ください。

回答
投稿日時: 17/11/15 00:34:53
投稿者: ピンク

    Dim MyRange As Range
    On Error Resume Next
    Set MyRange = Application.InputBox("セル範囲を指定してください", Type:=8)
    If Err Then
        MsgBox "中断します。"
        On Error GoTo 0
        Exit Sub
    End If
 
 On Error Resume Nextでの処理しか思いつきませんでした。m(_ _)m
 
 

回答
投稿日時: 17/11/15 00:38:26
投稿者: ピンク

    On Error Resume Next
    Set MyRange = Application.InputBox("セル範囲を指定してください", Type:=8)
    On Error GoTo 0
    If MyRange Is Nothing Then
        MsgBox "キャンセルしました。"
        Exit Sub
    End If

投稿日時: 17/11/15 00:56:13
投稿者: もこな2

ありがとうございます。
返り値を何とかするんじゃなくて、オブジェクトの方に目を向ければよかったんですね。
たすかりました。