[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル操作のマクロで、ポップアップを開かないように実行する』(猫熊)
フォルダ内のすべてのExcelブックについて、「報告書」という名前のシートを新規ブックにコピーというマクロ(https://www.moug.net/tech/exvba/0060003.html)を使わせてもらってます。素晴らしいのですが、これだとソースのファイルを開いては閉じていく度に、ポップアップ・ウィンドウがその(更新された)ファイルを保存するかを聞いてきます。そこで、保存しないを毎回クリックする必要があります。これを自動的に保存しないでソース・ファイルを閉じていくようにできないでしょうか?
ウェブからの抜粋コードを少しだけ改良するだけでいいのです、シートのコピーを自動で実行する全く新しいコードでもかまいません。わかる方、お願いします。
Sub Sample()
Dim sFile As String Dim sWB As Workbook, dWB As Workbook Dim dSheetCount As Long Dim i As Long Const SOURCE_DIR As String = "C:\Data\Source\" Const DEST_FILE As String = "C:\Data\AllReports.xls"
Application.ScreenUpdating = False
'指定したフォルダ内にあるブックのファイル名を取得 sFile = Dir(SOURCE_DIR & "*.xls")
'フォルダ内にブックがなければ終了 If sFile = "" Then Exit Sub
'集約用ブックを作成 Set dWB = Workbooks.Add
'集約用ブック作成時のシート数を取得 dSheetCount = dWB.Worksheets.Count
Do 'コピー元のブックを開く Set sWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile)
'コピー元の「報告書」シートを集約用ブックにコピー sWB.Worksheets("報告書").Copy After:=dWB.Worksheets(dSheetCount)
'シート名をセルA1の値に変更 ActiveSheet.Name = Range("A1").Value
'コピー元ファイルを閉じる sWB.Close
'次のブックのファイル名を取得 sFile = Dir() Loop While sFile <> ""
'集約用ブック作成時にあったシートを削除 Application.DisplayAlerts = False For i = dSheetCount To 1 Step -1 dWB.Worksheets(i).Delete Next i Application.DisplayAlerts = True
'集約用ブックを保存して閉じる dWB.SaveAs Filename:=DEST_FILE dWB.Close
Application.ScreenUpdating = False End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
sWB.Close を sWB.Close SaveChanges:= False (seiya) 2019/08/01(木) 18:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.