※ ChatGPTを利用し、要約された質問です(原文:Excel 2010マクロで挿入した画像に名前が付けられない!)
Excel 2010マクロで挿入した画像に名前が付けられない!
このQ&Aのポイント
Excel 2002で作成・使用していた画像挿入修正マクロを、Excel 2010で実行したところ、「指定したコレクションに対するインデックスが境界をこえています」とのエラーが発生し、挿入した画像に名前を付けることができません。
Excel 2010で実行すると、プログラムの一部が正常に作動することが確認されています。しかし、上記の部分ではエラーが発生し、具体的な原因は不明です。
この問題に対する解決策やヒントがあれば、ご教示いただけると幸いです。Excel 2010のマクロを使用して画像に名前を付ける方法についても、参考情報があればお知らせください。
Excel 2010マクロで挿入した画像に名前が付けられない!
Excel 2010マクロで挿入した画像に名前が付けられない!
Excel 2002で作成・使用していた画像挿入修正マクロを、Excel 2010で実行したところ、
下記プログラムの下から二行目の「ActiveSheet.Shapes(na11).Name = "ga1"」部分で
「指定したコレクションに対するインデックスが境界をこえています」とのことで
エラー!になります。
na11 = Selection.ShapeRange.ZOrderPosition
ActiveSheet.Shapes(na11).Name = "ga1"
上記の部分のみを、Excel 2010で実行すると正常に作動します。
原因がわかりません。ご指導よろしくお願いいたします。
※下記プログラムの「¥」は文字化けするため、全角に置き換えております。
------------------------------------------------------
' 画像(1)を自動配置する
If Range("AQ18").Value = 0 Then
Else
san = Range("DA17").Value
san2 = Right(san, Len(san) - InStrRev(san, "-") + 1)
d = Left(san, Len(san) - Len(san2))
myPath = pa & "¥" & a & "¥" & a & " " & b & " " & k & "¥" & d & "¥" & d & "-PHOTO" & "¥" & d & "_web"
Range("H42").Select
ActiveSheet.Pictures.Insert(myPath & "¥" & san).Select
' 画像(1)を縮小し、名前を付ける
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Width = size1
Selection.ShapeRange.Rotation = 0#
na11 = Selection.ShapeRange.ZOrderPosition
ActiveSheet.Shapes(na11).Name = "ga1"
End If
--------------------------------------------------
お礼
xls88 様 ありがとうございました。大変参考になりました。 Excel 2010で挿入した画像に名前が付けられました。 ' 画像を挿入して名前(ga1)を付け、サイズを変更する-------------- With ActiveSheet.Pictures.Insert(myPath & "¥" & san) .Name = "ga1" .ShapeRange.LockAspectRatio = msoTrue .ShapeRange.Width = size1 End With 上記のように書き換えました。(Excel 2010、Excel 2002、Excel 2003)すべて 正常に作動しました。