プロが教える店舗&オフィスのセキュリティ対策術

マクロを実行した時にエラーが出て実行が出来ません、解決方法を教えてください。
マクロ
Sub 電子提出()
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(Array("記載方法")).Delete
Worksheets(Array("提出図書(参考)")).Delete
Worksheets(Array("消防の指摘一覧(参考資料)")).Delete
Worksheets(Array("Web申請手順(参考)")).Delete
Worksheets(Array("申請種別")).Delete
Worksheets("提出シート").Activate
Dim rng As Range
Set rng = Selection.Cells
Range("B1", "H47").Select
myBook = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook
rng.Select
Sheets("提出シート").Range("D3,D4,D7").ClearContents
Range("D7").Select

ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled

Application.Quit
With ThisWorkbook
.Saved = True
Application.DisplayAlerts = True
.Close False
End With
Sheets("提出シート").Shapes("新築FD").Visible = False '
Sheets("提出シート").Shapes("計変FD").Visible = False '
Sheets("提出シート").Shapes("増築FD").Visible = False '
Sheets("提出シート").Shapes("担当者").Visible = False '
Range("D7").Select

End Sub

があります。
マクロを実行すると、作業フォルダ内に指定セル値をファイル名としてマクロ有効ブック方式と一般のExcel方式の2つのファイルで保存出来るようになっております。
しかし、
「ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled」の「Arg2」の部分が変色しマクロが実行できません。
解決方法を教えてください。
よろしくお願いいたします。

「エクセルのマクロについて教えてください。」の質問画像

A 回答 (2件)

こんにちは


ActiveWorkbook.SaveAsメソッドのFileFormat:=パラメータと
Application.Dialogs(xlDialogSaveAs)で使用するダイアログに対する引数
Arg2:= は違います

FileFormatをマクロ有効ブックにしたいのだと思いますので
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
で良いかと
xlOpenXMLWorkbookMacroEnabled は値 52にしても機能します

前にも同じような回答をいたしましたが
ActiveWorkbook.SaveAsメソッド
https://learn.microsoft.com/ja-jp/office/vba/api …
XlFileFormat 列挙体 (Excel)
https://learn.microsoft.com/ja-jp/office/vba/api …


【Excel VBA】xlDialogSaveAsのArg引数の使い方
https://watapipi.com/saveas_arg/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
全て上手くできました。
いつも助けて頂きまして
ありがとうございます。
感謝いたします。

お礼日時:2023/03/08 12:03

エラーが発生している原因は、 Arg2:=xlOpenXMLWorkbookMacroEnabledの部分にあると思われます。

これは、保存するファイルの形式を指定するための引数であり、Excel 2007以降で使用可能なマクロ有効なExcelブックの形式を表す定数です。

ただし、これを正常に使用するには、定数のプレフィックス xl を使用する必要があります。つまり、xlOpenXMLWorkbookMacroEnabledの代わりに、xlOpenXMLWorkbookMacroEnabledWorkbookを使用する必要があります。

以下は修正されたコードです。
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabledWorkbook
    • good
    • 0

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