プロが教える店舗&オフィスのセキュリティ対策術

セル範囲をコピー
図としてペースト
ペーストされた図形を選択

記録マクロで書くと下記のようになります。
Sub Macro1()
Range("G2:K15").Select
Selection.Copy
Range("A1").Select
ActiveSheet.Pictures.Paste.Select
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
End Sub

・場所を指定してペーストするのは、事前にselectする必要あるのでしょうか?
・挿入された図の名前がPicture1と分ってないと選択出来ません。他に方法あるのでしょうか?
図は複数あり、たった今ペーストした図形を選択したいのです。

参考になるURLあるいは書籍はないでしょうか?

A 回答 (3件)

>挿入された図の名前がPicture1と分ってないと選択出来ません。

他に方法あるのでしょうか?

Pasteする際に、Excelが勝手につけた名前を変数に保存して、その名前でSelectすることができます。

名前の保存は、こんな感じで。
MyPicName = ActiveSheet.Pictures.Paste.Name  ’Pasteと同時に、その名前を変数に代入します。
    • good
    • 5
この回答へのお礼

ありがとうございます。
Pasteした時点ですべて処理する必要があるようですね。

お礼日時:2016/02/05 07:02

> たった今ペーストした図形を選択したいのです。



最短、こんなコードでも。

Sub Macro1()
  Range("G2:K15").Copy
  ActiveSheet.Pictures.Paste.Select  ' アクティブセルに貼り付けて、その図を選択。
End Sub
    • good
    • 2
この回答へのお礼

ありがとうございます。
Pasteしてそのままselect、簡単で一番いいのですね。

お礼日時:2016/02/05 07:00

>場所を指定してペーストするのは、事前にselectする必要あるのでしょうか?



アクティブな場所にしか挿入できないからです。

>・挿入された図の名前がPicture1と分ってないと選択出来ません。他に方法あるのでしょうか?

挿入する際にSelectしたセルの上端左端アドレスを取得し、一致した場合にセレクトすればよいです。


下記コードはセルA1~A2の範囲をコピーし、セルD1~D2に画像として貼り付け、その後、シート内の画像を1つずつ選択し、その左端上端セルのアドレスが貼り付けたセル(D1)と同じであれば選択をするマクロです。
Debug.Print objPic.TopLeftCell.Addressは確認用ですので、実際に組み込むときには削除してください


Sub sample()
Dim objPic As Object

Range(Cells(1, 1), Cells(2, 1)).Copy
Range(Cells(1, 4), Cells(2, 4)).Select
ActiveSheet.Pictures.Paste.Select

For Each objPic In ActiveSheet.Pictures
Debug.Print objPic.TopLeftCell.Address
If objPic.TopLeftCell.Address = Cells(1, 4).Address Then _
objPic.Select
Next
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます。
アクティブにする必要があるですね。

お礼日時:2016/02/05 06:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A