Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


36779 / 76732 ←次へ | 前へ→

【45129】Re:オートシェイプのセレクト
回答  Kein  - 06/12/13(水) 14:14 -

引用なし
パスワード
   貼り付けた直後の図形は、選択状態になっているはずですから、
そのまま右クリックして図形の書式設定をするところまでを、
マクロの自動記録すれば出来るはずです。
どうしても変数に入れたいなら・・

Sub Shp_Copy()
  Dim Shp As Shape
 
  Sheets("情報").Shapes("AutoShape 15").Copy
  With Sheets("制作")
   .Activate
   .Paste
   Set Shp = .Shapes(.Shapes.Count)
  End With
  Shp.Left = 100
  Shp.Top = 10
  Shp.Fill.Visible = True
  Shp.Fill.ForeColor.RGB = RGB(255, 0, 0)
  Application.CutCopyMode = False
  Set Shp = Nothing
End Sub

などすれぱ出来ますが、コードを見て分かるとおり、
貼り付けた図形を特定するのに「インデックス」を使っている
わけです。これがマクロのコードを、どの図形に対しても汎用的に
使えるようにするコツです。なのでコピーする方も現在のように
>Shapes("AutoShape 15")
などと限定してしまうことなく、Selection を使うなどして

If TypeName(Selection) <> "Shape" Then Exit Sub

と判定し、Selection.Copy でコピーした方が良いでしょうね。

0 hits

【45117】オートシェイプのセレクト みゆう 06/12/13(水) 11:39 質問
【45118】Re:オートシェイプのセレクト Statis 06/12/13(水) 11:44 発言
【45121】Re:オートシェイプのセレクト みゆう 06/12/13(水) 13:06 発言
【45129】Re:オートシェイプのセレクト Kein 06/12/13(水) 14:14 回答
【45132】Re:オートシェイプのセレクト みゆう 06/12/13(水) 15:06 お礼

36779 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free