Excel (VBA)

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

 
(Windows 10 Home : Excel 2013)
ダイアログ表示でキャンセルした時の処理
投稿日時: 23/01/26 13:04:47
投稿者: ふしぎちゃん

いつもお世話になります。
 
パソコン上にある
テキストデータをインポートする処理を
するために、保存場所を選択しようと
考えていますが、
ダイアログがでて、きちんと選択すれば
問題ないのですが、キャンセルしたときの
分岐をどうすればよいかがわかりません。
 
内容としては、
 
「Dim mytxtfile As String
 
    ChDir "C:\Users"
    mytxtfile = Application.GetOpenFilename("テキストファイル (*.txt),*.txt")
 
  …
 
もしキャンセルをした時には、”終了してもよいですか?”
とメッセージを出して
”はい”なら、何もせずに(…部分も実行しない)終了して
”いいえ”なら、再度ダイアログを表示する」
 
よろしくお願い致します。

回答
投稿日時: 23/01/26 13:34:21
投稿者: sk

引用:
ダイアログがでて、きちんと選択すれば
問題ないのですが、キャンセルしたときの
分岐をどうすればよいかがわかりません。

引用:
もしキャンセルをした時には、”終了してもよいですか?”
とメッセージを出して
”はい”なら、何もせずに(…部分も実行しない)終了して
”いいえ”なら、再度ダイアログを表示する

(標準モジュール)
-------------------------------------------------------------------
Sub ImportTextFile()
 
    Dim TextFilePath As Variant
    Dim Response As Long
 
    ChDir "C:\Users"
     
    Do
        TextFilePath = Application.GetOpenFilename("テキストファイル (*.txt),*.txt")
        If TextFilePath = False Then
            Response = MsgBox("終了してもよいですか?", _
                              vbQuestion + vbYesNo + vbDefaultButton2, _
                              "ファイルが選択されませんでした")
            If Response = vbYes Then
                Exit Sub
            End If
        End If
    Loop Until TextFilePath <> False
     
    Debug.Print TextFilePath
     
    '以下 TextFilePath が示すパスにあるファイルをインポートする処理
     
 
End Sub
-------------------------------------------------------------------
 
以上のようなコードを実行できればよい、ということでしょうか。

投稿日時: 23/01/26 13:48:01
投稿者: ふしぎちゃん

sk さん
有難うございました。
 
送って頂いた内容で
希望通りの操作ができました。
 
本当に有難うございました。