web-dev-qa-db-ja.com

Excelで大量のデータをコピーするときにクリップボードのメッセージボックスを回避するにはどうすればよいですか?

あるブックから新しいブックに4枚のシートをコピーし、別の名前で保存するマクロがあります。

残念ながら、私がこの大量のデータを他のアプリケーションで利用できるようにしたいかどうかを尋ねるメッセージボックスにより、この自動化されたジョブはわずかに手動になります。

クリップボードのメッセージボックスを回避する方法、または自動的に「いいえ」と答える方法に関するヒントをいただければ幸いです。

3
RocketGoal

マクロを変更します。マクロの開始時にアラートをオフにし、マクロの終了時にアラートをオンに戻します。つまり、Application.DisplayAlerts = False

5
mischab1

Application.DisplayAlerts = Falseの問題は、表示する必要のあるアラートが非表示になる可能性があることです。

貼り付けの後にApplication.CutCopyMode = Falseを使用すると、クリップボードから広い範囲へのリンクが削除されます。

7
Jon Peltier

Jon Peltierに同意します。「Application.DisplayAlerts = Falseの問題は、表示する必要のあるアラートが非表示になる可能性があることです。」さらに、完了後にApplication.DisplayAlerts = Trueを設定することを忘れないでください。これにより、貼り付けごとに3行のコードが作成され、プログラムがApplication.DisplayAlerts = Trueの前に中断した場合、Excelを終了するまで無意識のうちにアラートがオフになります。 。

貼り付け後に彼の提案をApplication.CutCopyMode = Falseテストしましたが、正常に機能します。 someSpreadsheet.xlsの例を次に示します。

Workbooks.OpenText Filename:="someDirectory\someFile.txt", _
    DataType:=xlDelimited, TextQualifier:=xlNone, _
    Tab:=True
Cells.Select
Selection.Copy
Windows("someSpreadsheet.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = 0
Windows("someFile.txt").Activate
ActiveWorkbook.Close
2
Patrick Boylan

これに関するMSドキュメントを見つけました。これを解決するには、マクロでいくつかの異なるプログラムソリューションを使用できるようです。クリップボードに何をコピーしているかによって異なります。 KB#287392

1
DaBaer