【お題】NEW演歌

下記のマクロを実行すると指定セル値(CE1)をファイル名にしてマクロ有効ブックとして保存できます。
セル(CE1)には「=$CJ$16&""&$A$2」を設定しており、「CJ$16」には【青紙】と表示しており
「A$2」には物件毎の名前が表示されますが、物件の名前が「No.1」の場合に上手くマクロ有効ブックとして保存できません。(Excelの拡張子が無くなってます)
物件の名前が「№1」の場合には上手くマクロ有効ブックとして保存できます。
これはマクロで解決できるものでしょうか。
教えてください。
現状のマクロ
Sub 名前を付けて保存ファイル削除()

Dim alert As VbMsgBoxResult
alert = MsgBox("名前を付けて保存を行いますか?", vbYesNo + vbQuestion, "保存確認")
If alert <> vbYes Then
Exit Sub
End If

On Error Resume Next



Dim newName As String
newName = Sheets("青紙表").Range("CE1").Value

Dim ws As Worksheet
Dim TargetCheck As String
Dim List As Variant
Dim i As Long
Dim Chk As Boolean


For Each ws In Worksheets
Chk = False
If ws.Visible = False Then
For i = 0 To UBound(List)
If ws.Name = List(i) Then
Chk = True
Exit For
End If
Next i
If Chk = False Then
TargetCheck = TargetCheck & ws.Name & vbCrLf
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
End If
Next ws

Dim oldName As String
oldName = ThisWorkbook.Path & "\" & ThisWorkbook.Name

With ThisWorkbook
Application.DisplayAlerts = False
.SaveAs .Path & "\" & newName, xlOpenXMLWorkbookMacroEnabled
Application.DisplayAlerts = True
End With

Kill oldName

Application.ScreenUpdating = True
Application.Quit
With ThisWorkbook
.Saved = True
.Close False
End With
End Sub
以上となります。よろしくお願いいたします。

「Excelのマクロについて教えてください」の質問画像

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございました。
    申し訳ございません、
    貴社のご指示の
    具体的には、拡張子「.xlsm」を付して保存すれば良いでしょう。
    はコードのどの部分を変更すれば良いかが、わからないのです。
    教えて頂けますか。
    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/11/21 10:47

A 回答 (2件)

>具体的には、拡張子「.xlsm」を付して保存すれば良いでしょう。


>はコードのどの部分を変更すれば良いかが、わからないのです。

newName = Sheets("青紙表").Range("CE1").Value

newName = Sheets("青紙表").Range("CE1").Value & ".xlsm"
に変えてください。

本件、テスト環境が作れないため、こちらでの動作確認は行っていません。
間違っていたら、ごめんなさい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
上手くできました。
感謝いたします。

お礼日時:2024/11/22 13:39

こんにちは



>上手くマクロ有効ブックとして保存できません。
結果を見ればわかる通り、拡張子を指定して保存しているから、その通りになっているだけです。
ファイル名に「.」を入れることは、一応は許容されているので、保存時に拡張子を(省略せずに)きちんと指定して保存すれば済みます。

具体的には、拡張子「.xlsm」を付して保存すれば良いでしょう。
この回答への補足あり
    • good
    • 0

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


おすすめ情報