Excelブックがあり、VBAコードを使用して別のブックを開き、元のデータをコピーしてから2番目のブックを閉じます。
2番目のワークブックを閉じるとき(Application.Close
)、次のプロンプトが表示されます。
クリップボードを保存しますか?.
このプロンプトをバイパスするコマンドがVBAにありますか?
2つのオプションを提供できます
あなたの説明に基づいて、私はあなたが次のようなことをしていると推測しています
Set wb2 = Application.Workbooks.Open("YourFile.xls")
wb2.Sheets("YourSheet").[<YourRange>].Copy
ThisWorkbook.Sheets("SomeSheet").Paste
wb2.close
この場合、クリップボードを介してコピーする必要はありません。このメソッドは、ソースから宛先に直接コピーします。クリップボードにデータなし=プロンプトなし
Set wb2 = Application.Workbooks.Open("YourFile.xls")
wb2.Sheets("YourSheet").[<YourRange>].Copy ThisWorkbook.Sheets("SomeSheet").Cells(<YourCell")
wb2.close
設定することで、すべてのアラートポップアップを防ぐことができます
Application.DisplayAlerts = False
[編集]
Dim rSrc As Range
Dim rDst As Range
Set rSrc = wb2.Sheets("YourSheet").Range("YourRange")
Set rDst = ThisWorkbook.Sheets("SomeSheet").Cells("YourCell").Resize(rSrc.Rows.Count, rSrc.Columns.Count)
rDst = rSrc.Value
もう1つの解決策を追加する場合は、次のコマンドを使用してクリップボードをキャンセルするだけです。
Application.CutCopyMode = False
過去にこの問題に遭遇しました-終了した時点で実際にクリップボードを必要としない場合の外観から、私が持っていた同じ簡単な解決策を使用できます。クリップボードをクリアするだけです。 :)
ActiveCell.Copy
クリス
閉じる前にクリップボードをクリアするだけです。
Application.CutCopyMode=False
ActiveWindow.Close
簡単な回避策があります。このアラートは、クリップボードに大量のデータがある場合にのみ表示されます。ブックを閉じる前にランダムなセルをコピーするだけで、表示されなくなります!
変更を保存したくない場合、およびマクロを使用してExcelファイルを保存するときにその保存プロンプトを表示したくない場合は、このコードが役立ちます。
Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
Saved
プロパティがTrue
に設定されているため、Excelはワークブックが既に保存され、最後の保存以降に変更が行われていないように応答し、保存プロンプトはありません。