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

エクセルVBAで複数の図に名前をつけたい
エクセルで見出しと合計2カ所などウィンドウ枠固定を複数つける
ことはできないので、かわる方法として図のリンク貼り付けを利用
しようと思い下記を作りました。

Sub test()
  Range("A100", "R100").Select
  Selection.Copy
  Range("A1").Select
  ActiveSheet.Pictures.Paste link:=True
  ActiveSheet.Pictures.ShapeRange.Name = "合計1"


  Range("A200", "R200").Select
  Selection.Copy
  Range("A2").Select
  ActiveSheet.Pictures.Paste link:=True
  ActiveSheet.Pictures.ShapeRange.Name = "合計2" ・・・(1)
End Sub

必要に応じて合計1または合計2を削除します

Sub 図1削除()
ActiveSheet.Shapes("合計1").Delete
End Sub

Sub 図2削除()
ActiveSheet.Shapes("合計2").Delete
End Sub

(1)のところで
「このメンバにアクセスできるのは、単一の図形の場合だけです」エラーになります。
エラーがでないように図に名前をつける方法をおしえていただけないでしょうか。
何卒よろしくお願い致します

A 回答 (1件)

とりあえず,ご質問の直接の回答としては



Sub test()
 Range("A100", "R100").Copy
 Range("A1").Select
 ActiveSheet.Pictures.Paste(link:=True).Name = "合計1"

 Range("A200", "R200").Copy
 Range("A2").Select
 ActiveSheet.Pictures.Paste(link:=True).Name = "合計2"
End Sub
といった具合で。



#以下余談
有り体に言えば100行目や200行目を参照する数式を,1行目にずらっと並べておくだけで十分に見えます。どんな状況で100や200を差し替えたい(ご質問の事例でわざわざDeleteを行う理由とタイミング)が不明なので,具体的な数式はまた別途ご相談ください。

または。
1行目に図のリンク貼り付けを1つ固定で配置しておき,その「リンクするセル範囲」を状況によって差し替える(こちらも同上で,何をどうしたら差し替えたいのか不明なので,具体的なマクロ等も提案できません),つまり1個のリンク貼り付けを使い回す事でも出来そうです。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
回答の方法でエラーはなくうまくいきました。

>どんな状況で100や200を差し替えたい・・・
実は行列両方にスクロールしないといけない巨大な表のため
スクロールしながら任意の場所にリンク貼り付け表示をON、OFF
できれば便利かなと思い質問しました。
いろいろなご提案ありがとうございます。

お礼日時:2010/04/28 13:40

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


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