Excel2013、実行時エラー1004データを貼り付けできませんの原因
Excel2013は、手頃な価格で高機能な表計算ソフトです。
またVBAによるプログラムを行うと、特に繰り返し作業では多大な威力を発揮します。
しかし、Excel2013の棒グラフにVBAで画像を貼り付けるプログラムを作成していた所、
「実行時エラー1004データを貼り付けできません」のエラーが発生しマクロが停止しました。
そこで原因究明と対策実施を検討しました。
パソコンは、下記のソフトを使用していました。
OS : Windows8.1(32bit)
表計算ソフト : Excel2013(32bit)
ランチャーソフト : ArtTips Ver 7.90(32bit)
以下、Excel2013、実行時エラー1004データを貼り付けできませんの原因と対策を記載して行き
ます。
(項目1)
・Excel2013の棒グラフに、VBAで画像を貼り付けるプログラムを作成していた所、
「実行時エラー1004データを貼り付けできません」のエラーが発生しマクロが停止しました。
(項目2)
・デバッグを押すと、
ActiveSheet.Pictures.Paste.Selectの箇所で止まっていました。
(項目3)
・VBAでコピペ命令を使用しているので、ArtTipsとの相性が考えられました。
・そこで、ArtTipsを終了してVBAを実行すると、正常に作動しました。
・本ページでは、ArtTipsを起動したままで、VBAが正常に作動するプログラムを検討しました。
(項目4)
・
DoEventsを使用すると、VBAの動作が安定する場合が有ります。
・今回は、DoEventsを1回では足らず、100回使いました。
・DoEvents100回で動作は安定しましたが、画像の貼り付けが完全では有りませんでした。
・下記の画像の様に、棒の上の部分が良くないです。
(項目5)
・VBAを種々検討した結果、
Selection.Copy → Selection.CopyPicture に変更すると、
画像が正常に貼り付ける事が分かりました。
(項目6)
・VBAコードは、以下の通りです。
(対策前)
'画像変更
For j = 1
To 5
Range("A" &
j * 2).
Select
Selection.
Copy
Range("C" &
j * 2).
Select
ActiveSheet.
Pictures.
Paste.
Select
ActiveSheet.
ChartObjects("グラフ 1").
Activate
ActiveChart.
SeriesCollection(1).
Select
ActiveChart.
SeriesCollection(1).
Points(
j).
Select
ActiveChart.
SeriesCollection(1).
Points(
j).
Paste
Next j
(対策後)
'画像変更
For j = 1
To 5
Range("A" &
j * 2).
Select
Selection.
CopyPicture
Range("C" &
j * 2).
Select
For k = 1
To 100
DoEvents
Next k
ActiveSheet.
Pictures.
Paste.
Select
ActiveSheet.
ChartObjects("グラフ 1").
Activate
ActiveChart.
SeriesCollection(1).
Select
ActiveChart.
SeriesCollection(1).
Points(
j).
Select
ActiveChart.
SeriesCollection(1).
Points(
j).
Paste
Next j
(項目7)
・以上で、Excel2013、実行時エラー1004データを貼り付けできませんの原因と対策は終了です。
・VBAでコピペ命令とArtTipsの相性が原因でした。
・対策は、DoEvents100回+Selection.CopyPictureです。