[[20190729183656]] 『自動保存のマクロがうまくできません。』(モリ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『自動保存のマクロがうまくできません。』(モリ)

自動で名前を付けて保存のマクロを作りましたが、うまく起動できません。

保存際にはなぜか白紙のページが指定した名前で出力されてしまいます。
私としてはエクセル自体を名前を付けて保存で考えています。
また、保存したファイル名の先頭に集計+filenameという感じになってしまいます。

申し訳ありませんがご教授おねがいします。

Sub sample()
Dim newBook As Workbook
Dim fileName As String
fileName = Range("C4") & " " & Range("C2") 'ファイル名作成
Set newBook = Workbooks.Add '新しいブックを作成
'色々な処理
If MsgBox(fileName & " で保存しますか?", vbYesNo) <> vbYes Then Exit Sub '保存するか確認して保存しない場合は終了
Application.DisplayAlerts = False '同名のファイルがある場合の警告禁止(必要なら)
newBook.SaveAs "C:\Users\morishita\Desktop\集計\" & fileName '指定フォルダに保存
Application.DisplayAlerts = True '警告許可(上で警告禁止した場合は警告許可に戻す)
newBook.Close SaveChanges:=False '保存せずに閉じる
End Sub

< 使用 Excel:Excel2016mac、使用 OS:Windows10 >


>'色々な処理

ここに、↓を追記したらどうなりますか。

 newBook.sheets(1).Cells(1).Value="テスト"

(マナ) 2019/07/29(月) 18:58


マナさんが既に指摘されているような気もしますが、「いろいろな処理」はどのブックに対して実行しているのでしょうか?

提示された部分だけだと、新規ブックを追加してそのまま保存しているだけなので、そりゃそうなるなと思いますが・・・
想像で補完して整理するとこんな感じに

    Sub さんぷる()

        Dim fileName As String

       'アクティブシートのC4、C2セルを参照して保存するファイル名を取得
        fileName = ActiveSheet.Range("C4").Value & "_" & ActiveSheet.Range("C2").Value

        '新規ブックを作成
        With Workbooks.Add
            'いろんな処理

            '保存するかユーザーに確認
            If MsgBox(.Name & "を" & vbCrLf & fileName & " という名前で" & vbCrLf & "保存して閉じますか?", vbYesNo) = vbYes Then

                Application.DisplayAlerts = False '確認メッセージを抑制
                .SaveAs CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\集計\" & fileName '指定フォルダに保存"
                .Close '閉じる
                Application.DisplayAlerts = True '確認メッセージの抑制を解除

            End If

        End With
    End Sub

↑をステップ実行すれば解ると思いますが、いろんな処理とやらは新しく作ったブックのほうにしてやらないとダメだとおもいます。
(既にそのようになっているならごめんなさいですが)

(もこな2) 2019/07/29(月) 20:14


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.