dポイントプレゼントキャンペーン実施中!

【やりたい事2つ】
以下のマクロは、原本ファイルを開き、別名で保存するものです

保存をする際に、既に同じ名前があれば
●●●メッセージ(同じ名前のファイルがあります) を表示させたいです●●●

また

その後

上書き
上書きしない

を選択しますが

上書きしないを選択すると

wb.SaveAs fileName がデバックとなります

●●●これをデバックとならずに、上書きせずに、終了となるようにしたいです●●●


【条件】
A7セルには あいうえお と入力しています
既にあるファイルは あいうえお.xlsx です


●●●最後に、以下のコードで必要のないコードや、省略可できる所があったら教えて下さい●●●


【コード。動きます】

Sub 原本ファイルより名前を変更()

Dim wb As Workbook

fileName = "C:\Users\2020\OneDrive\マクロ\" & Worksheets("転記元").Range("A7") & ".xlsx"

Workbooks.Open "C:\Users\2020\OneDrive\マクロ\原本ファイル\原本ファイル.xlsx"

Set wb = Workbooks("原本ファイル.xlsx")

wb.SaveAs fileName

wb.Close saveChanges:=False

End Sub

A 回答 (3件)

No2です。


単純にファイルをコピーするだけなので、以下の方法でも可能です。
Sub 原本ファイルより名前を変更2()

Dim FSO As Object
Dim Filename As String
Dim BaseFile As String

Filename = "C:\Users\2020\OneDrive\マクロ\" & Worksheets("転記元").Range("A7") & ".xlsx"

If Dir(Filename) <> "" Then
resp = MsgBox("この場所に'" & Filename & "'という名前のファイルが既にあります。置き換えますか?", vbYesNo)
If resp = vbNo Then Exit Sub
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
BaseFile = "C:\Users\2020\OneDrive\マクロ\原本ファイル\原本ファイル.xlsx"

FSO.copyfile BaseFile, Filename


End Sub
    • good
    • 1
この回答へのお礼

いつもありがとうございます、うまくうごきました

お礼日時:2024/06/01 20:05

以下のようにしてください。



Sub 原本ファイルより名前を変更()

Dim wb As Workbook

Filename = "C:\Users\2020\OneDrive\マクロ\" & Worksheets("転記元").Range("A7") & ".xlsx"
If Dir(Filename) <> "" Then
resp = MsgBox("この場所に'" & Filename & "'という名前のファイルが既にあります。置き換えますか?", vbYesNo)
If resp = vbNo Then Exit Sub
End If

Workbooks.Open "C:\Users\2020\OneDrive\マクロ\原本ファイル\原本ファイル.xlsx"

Set wb = Workbooks("原本ファイル.xlsx")
Application.DisplayAlerts = False
wb.SaveAs Filename

wb.Close saveChanges:=False
Application.DisplayAlerts = True

End Sub
    • good
    • 1

On Error Resume か


On Error GoTo を使えば、そんな難しいことは無いと思います。

https://www.sejuku.net/blog/35484
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A