| 
    
     |  | ▼non さん: >エクセルシート上のボタンを押すと「ファイルを開く」ダイアログボックスが開き,その「ファイルを開く」ダイアログボックスから,任意のファイルを開いてマクロを実行させるという設定です。
 >ここで,同一ファイル名のファイルが既に開かれていて,2重に開こうとすると,以下のメッセージが表示されます。
 >
 >「"ファイル名"は既に開いています。2重に開くと,これまでの変更内容は破棄されます。"ファイル名"を開きますか?」
 >
 >ここで,「はい」を選択した時はそれ以降の処理がうまく行くのですが,「いいえ」を選択した時に「実行時エラー’1004’」というのが表示されてしまいます。
 >そこで,「いいえ」を選択した時に最初のボタンが表示されたエクセルシートに戻るようにマクロを組直したいのですがどのような構文を組めばよいかがわかりません。
 >教えていただけないでしょうか?
 
 こんな感じで如何でしょうか。
 
 strFName = Application.GetOpenFilename("Excel File(*.xls), *.xls")
 If strFName = "False" Then Exit Sub
 
 On Error Resume Next
 intFNo = FreeFile
 Open strFName For Binary Access Write Lock Write As #intFNo
 Close #intFNo
 
 If (GetAttr(strFName) And vbReadOnly) = 0 And Err.Number Then
 MsgBox "他で開かれています。閉じてから実行して下さい。", _
 vbInformation
 Exit Sub
 End If
 
 |  |