あるブックから新しいブックに4枚のシートをコピーし、別の名前で保存するマクロがあります。
残念ながら、私がこの大量のデータを他のアプリケーションで利用できるようにしたいかどうかを尋ねるメッセージボックスにより、この自動化されたジョブはわずかに手動になります。
クリップボードのメッセージボックスを回避する方法、または自動的に「いいえ」と答える方法に関するヒントをいただければ幸いです。
マクロを変更します。マクロの開始時にアラートをオフにし、マクロの終了時にアラートをオンに戻します。つまり、Application.DisplayAlerts = False
Application.DisplayAlerts = False
の問題は、表示する必要のあるアラートが非表示になる可能性があることです。
貼り付けの後にApplication.CutCopyMode = False
を使用すると、クリップボードから広い範囲へのリンクが削除されます。
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
これに関するMSドキュメントを見つけました。これを解決するには、マクロでいくつかの異なるプログラムソリューションを使用できるようです。クリップボードに何をコピーしているかによって異なります。 KB#287392