ここから本文です

Excelマクロについて教えてください。 同じブック内の違うシートの、同じ位置に図...

szk********さん

2019/9/1618:06:43

Excelマクロについて教えてください。
同じブック内の違うシートの、同じ位置に図形を貼り付けるマクロを作成しています。

Dim myShape As Variant
wb.Activate
wb.sht2.Select
For Each myShape In wb.sht1.Shapes
myShape.Copy
ActiveSheet.Paste
Selection.Top = myShape.Top
Selection.Left = myShape.Left
Next

Excel2013では問題なく動いたのですが、Excel2016になってから、ActiveSheet.Pasteのところで「WorksheetクラスのPasteメソッドが失敗しました」というエラーで止まるようになりました。
デバッグして継続→デバッグして継続、を繰り返すと、動きます。

調べたところ、このようなエラー例がわりとあるようで、原因に「クリップボードにコピーされていないから」と書いてありました。
そこで、エラー回避方法として書かれている通り、途中に「DoEvents」を入れたり「Sleep」を入れたりしてみましたが、エラーが解消されません。

ほかにエラー回避方法があれば教えてください。
または、図形を一括で同じ位置にコピー&ペーストできるコードがあれば教えていただけないでしょうか。
よろしくお願いいたします。

閲覧数:
23
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hot********さん

2019/9/1622:01:20

まず、質問のプログラムは間違ってる所があるので動きません。
>wb.sht2
と言う記述は間違っています。
また変数の設定してない所もあります。
コピーの後にペーストまで2秒待ちを入れました。
待ち時間を調整してみてください。
このブックのSheet1とSheet2が対象の場合です。


Sub sample()
Dim wb As Workbook
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Set wb = ThisWorkbook
Set sht1 = wb.Sheets("Sheet1")
Set sht2 = wb.Sheets("Sheet2")

Dim myShape As Variant
wb.Activate
sht2.Select
For Each myShape In sht1.Shapes
myShape.Copy
Application.Wait Now + TimeValue("0:00:02") '2秒待ち
ActiveSheet.Paste
Selection.Top = myShape.Top
Selection.Left = myShape.Left
Next
End Sub

質問した人からのコメント

2019/9/17 22:24:07

ありがとうございます。
変数が別のところに書いてあり省略していまい申し訳ありません。
大変失礼いたしました。
教えていただいた「2秒待ち」を入れてみたところ、エラーが出ずに動きました。
ありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

taihenda****さん

2019/9/1622:04:12

なんか変ですね。
wb.sht1.Shapesがエラーにならないですか?

変数wbに何が入っているか端折っているので不明ですがふつうはそのような書き方はしないもんです。

>同じブック内の違うシートの

なので
Set wb = ThisWorkbook
ですか?
だとすると
wb.sht2.Select
でもエラーになると・・・・


wb,sht1,sht2のところを省略しないで書いてみては?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ino********さん

編集あり2019/9/1618:45:13

エラーを無視して継続すれば動くのであれば、On Error Resume Nextステートメントを使用する方法があります

ただ、ほんとうにクリップボードにコピーされていないなら、継続して貼り付けられるのは疑問。クリップボードにコピー出来ているかどうか、ブレイクを入れるなどして確認してみてはいかがですか。
他に原因があるはずですよ

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる