2

Excel-VBA では、次のコードを使用してファイルを保存しています。

fullFileName = Application.GetSaveAsFilename(...)
ActiveWorkbook.SaveAs fullFileName

選択した名前がすでに存在するまで、これは正常に機能します。次に、メッセージ ボックスに、「ファイルを置き換えますか?」というメッセージが表示されます。に答えNoて、前のメッセージ ボックスに戻り、別の名前を選択します。

代わりに、クリックするNoとマクロが中断され、エラーが発生します。

どうすればこれを解決できますか?

Application.DisplayAlerts=False(Web には、このメッセージ ボックスをバイパスしてとにかく保存する方法を示す例がたくさんあります。これは私が望んでいるものではありません!)

4

1 に答える 1

3

普段使っているのはこれ...

Sub Sample()
    Dim fullFileName

    fullFileName = Application.GetSaveAsFilename( _
                   fileFilter:="Text Files (*.txt), *.txt")
    If fullFileName <> False Then
        If fileExists(fullFileName) = False Then
            ActiveWorkbook.SaveAs fullFileName
        Else
            MsgBox "File Exists. File Save Aborted"
        End If
    End If
End Sub

Public Function fileExists(strFullPath As Variant) As Boolean
    On Error GoTo Whoa
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then fileExists = True
Whoa:
    On Error GoTo 0
End Function

ファローアップ

こんな感じですか?

Sub Sample()
    Dim fullFileName
    Dim conti As Boolean

    conti = True

    Do While conti = True
        fullFileName = Application.GetSaveAsFilename( _
                       fileFilter:="Text Files (*.txt), *.txt")
        If fullFileName <> False Then
            If fileExists(fullFileName) = False Then
                ActiveWorkbook.SaveAs fullFileName
                conti = False
            Else
                MsgBox "File Exists. Returning you back to the dialog box"
            End If
        Else
            conti = False
        End If
    Loop
End Sub

Public Function fileExists(strFullPath As Variant) As Boolean
    On Error GoTo Whoa
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then fileExists = True
Whoa:
    On Error GoTo 0
End Function
于 2012-07-31T10:41:50.040 に答える