[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『図として貼付・マクロをまとめるとエラー』(たなか)
お世話になります。
A シート1のA3を、シート2のA10に図として貼付
B シート3のA3を、シート4のA10に図として貼付
それぞれAB単体ではエラーが出ないのですが、
ABを同じsubの中に入れると「実行時エラー'1004':データを貼り付けできません。」と出ます。
エラーが出ても「▶(継続)」を押せば、貼り付けができます。
どのあたりがダメなんでしょうか。
Sub A単体()
ThisWorkbook.Worksheets("シート1").Activate
ThisWorkbook.Worksheets("シート1").Columns("A:A").AutoFit '列幅を自動調整
ThisWorkbook.Worksheets("シート1").Range("A3").Select '図としてコピペ
Selection.Copy
ThisWorkbook.Worksheets("シート2").Activate
Range("N10").Select
ActiveSheet.Pictures.Paste link:=False
ThisWorkbook.Worksheets("シート1").Columns("A:A").ColumnWidth = 6 '列幅を6に変更
Application.CutCopyMode = False
End Sub
Sub B単体()
ThisWorkbook.Worksheets("シート3").Activate
ThisWorkbook.Worksheets("シート3").Columns("A:A").AutoFit '列幅を自動調整
ThisWorkbook.Worksheets("シート3").Range("A3").Select '図としてコピペ
Selection.Copy
ThisWorkbook.Worksheets("シート4").Activate
Range("N10").Select
ActiveSheet.Pictures.Paste link:=False
ThisWorkbook.Worksheets("シート3").Columns("A:A").ColumnWidth = 6 '列幅を6に変更
Application.CutCopyMode = False
End Sub
Sub ABまとめ()
ThisWorkbook.Worksheets("シート1").Activate
ThisWorkbook.Worksheets("シート1").Columns("A:A").AutoFit '列幅を自動調整
ThisWorkbook.Worksheets("シート1").Range("A3").Select '図としてコピペ
Selection.Copy
ThisWorkbook.Worksheets("シート2").Activate
Range("N10").Select
ActiveSheet.Pictures.Paste link:=False
ThisWorkbook.Worksheets("シート1").Columns("A:A").ColumnWidth = 6 '列幅を6に変更
Application.CutCopyMode = False
ThisWorkbook.Worksheets("シート3").Activate
ThisWorkbook.Worksheets("シート3").Columns("A:A").AutoFit '列幅を自動調整
ThisWorkbook.Worksheets("シート3").Range("A3").Select '図としてコピペ
Selection.Copy
ThisWorkbook.Worksheets("シート4").Activate
Range("N10").Select
ActiveSheet.Pictures.Paste link:=False
ThisWorkbook.Worksheets("シート3").Columns("A:A").ColumnWidth = 6 '列幅を6に変更
Application.CutCopyMode = False
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
とりあえず ThisWorkbook.Worksheets("シート3").Activate の前に DoEvents を入れてみてはどうだろうか? (ねむねむ) 2018/11/12(月) 11:52
DoEvents
を入れてみたのですが、エラーになりました…
(たなか) 2018/11/12(月) 13:05
シート1、シート3のN10セルにはどんな値が入っているのだろうか? こちらで適当な文字列を入れて実行したときには問題なく実行できた。 (ねむねむ) 2018/11/12(月) 13:51
両方のSelection.Copy の後にDoEventsを入れては? (X) 2018/11/12(月) 14:02
DoEventsと並んでSleepメソッドを各所に挟むのも良いかもしれません。
確実に実行されるコードを書くときは、On Error Goto〜Resumeを使って成功するまでループさせて無事貼り付け出来たのを確認したら続行みたいな、かなり複雑なコードを書きます。
簡単な回避方法があったら私も知りたい。
(にゅるん) 2018/11/12(月) 16:04
Pictures.Pasteを使ってコピー→図として貼り付けではなくCopyPictureを使って 図としてコピー→貼り付けとしてはどうだろう?
(ねむねむ) 2018/11/12(月) 16:21
ぶつかり。
Activateの行いらない。 確認したいのなら、残してもいいけど。
Sheets("Sheet1").Range("A1").CopyPicture Sheets("Sheet2").Range("C3").PasteSplecial (BJ) 2018/11/12(月) 16:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.