クリップボードを空にできません。(エラー番号:520)


このエラーは、どちらかというと、Excelを手動操作しているときに、よく見かけます。一般的に、クリップボードに大量のデータを格納したときとか、同時に起動している他アプリケーションがクリップボードを操作したときなどに発生すると言われていますが、確実な再現方法が見あたりませんでした。

手動操作で発生するということは、マクロによる貼り付け操作でも、同じように発生する可能性があるということです。原因は明確にできませんが、なぜこのエラーが発生するかという経緯をご説明します。

Excelは、独自にクリップボードを管理し、内部で操作しています。それは、ほとんど使う人がいない「Officeクリップボード」機能のことではありません。もっと根源的な話です。

(1)セルをコピーします

(2)コピー対象のセルがクリップボードに格納されると、セルの周囲が点滅します

(3)クリップボードの内容を表示・編集できる「クリップブック」で確認すると、コピーしたセルの情報が表示されます。図でわかるように、セルにはさまざまな情報が含まれており、それらがすべてクリップボードに格納されます。下図のクリップブックは、クリップボード内に格納されている各種情報のうち画像データを表示しています

(4)貼り付け先のセルを選択します

(5)クリップボードに格納されていたセルのデータを、貼り付け先セルに貼り付けます。貼り付けた後でも、コピー元セル周囲の点滅は消えません。続けて貼り付けることが可能です。つまり、クリップボードにはまだデータが格納されているということです。このように、コピーしたデータを貼り付けられる状態をカットコピーモードと呼びます

(6)Escキーを押すなどして、カットコピーモードを終了します

(7)カットコピーモードが終了すると、Excelはクリップボードのデータをクリアします

Excelは、カットコピーモードを終了するとき、クリップボードの内容をクリアします。これは、一般的なアプリケーションでは、あまり行われない動作です。この、クリップボードをクリアするとき、何らかの理由でクリアに失敗すると「クリップボードを空にできません」のエラーが発生します。