MW211 EXIT

devlog
ExcelVBA/図が大きすぎます対策
2018年11月23日
大きな領域(例えばシートまるごと)をExcelVBAでコピーした後に、
ファイルを閉じると以下のエラーが発生する場合がある。
┌──────────────────────────────────────┐
│図が大きすぎます。入りきらない部分は切り捨てられます。                      │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│リソース不足のため、このタスクを完了することができません。                  │
│選択するデータを少なくするか、                                              │
│ほかのアプリケーションを終了して再度試してください。                        │
│元に戻さずに続けますか?                                                    │
└──────────────────────────────────────┘
クリップボードに大きなデータがあるために発生するエラーのようである。

よって、ファイルを閉じる前に、クリップボードをクリアすれば解決できるのだが
残念ながらExcelVBAでクリップボードを直接操作できない。

ということで代案。適当な領域をコピーした形にしてあげる。これでOK。
┌──────────────────────────────────────┐
│シート.Cells(1, 1).Copy                                                     │
└──────────────────────────────────────┘

ここまで来ると、コピー選択状態を以下のように解除してあげたくなる。
┌──────────────────────────────────────┐
│シート.Cells(1, 1).Copy                                                     │
│Application.CutCopyMode = False                                             │
└──────────────────────────────────────┘
しかしこれだと、効果がないようだ。

でも、1秒のdelayを挟んであげたらうまくいった。(裏で追いついてないってこと?)
┌──────────────────────────────────────┐
│シート.Cells(1, 1).Copy                                                     │
│Application.Wait Now + TimeValue("00:00:01")                                │
│Application.CutCopyMode = False                                             │
└──────────────────────────────────────┘
分類:ExcelVBA