|
▼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
|
|