
No.1ベストアンサー
- 回答日時:
バージョン幾つのエクセルを使っているのかによって,正しいマクロの書きぶりが変わる場合があります。
ご相談投稿時には,ご利用のソフト姪は元よりご利用のソフトのバージョンまでしっかり明記することを憶えてください。
>あらたにコピーされた図形の名前を設定できますか。
モチロンできます。
基本的なコツは,貼り付けた(新たな画像がシート上に発生した)直後にさっさと名前を付けてしまうことです。
作成例:
sub macro1()
activesheet.shapes("Picture 1").copy
range("A10").select
activesheet.paste
selection.name = "Pict2"
end sub
#但し書き:今回のご相談とは全く無関係の部分で
ご相談のようなヤリタイ事で,現実に大概問題になるのは「一体どんな名前にしたらイイ」のか,少なくともエラーが起きないマクロを書けるかという部分です。
もうちょっと作業を進めた後,必要に応じてまた別途ご相談を投稿してみてください。
すばやい回答有難う御座います。
<<直後にさっさと名前を付けてしまうことです。
なるほど、作った直後のセレクトされている内なら出来るということですね。
できるオブジェクトの名前を直接つけるのはできないんですね。
有難う御座います。
No.2
- 回答日時:
私はShapeのRectangle 1でやったのですが
シートSheet1に図形の長方形を1つ作っておく。
標準モジュールに
Sub Macro4()
Worksheets("Sheet1").Shapes("Rectangle 1").Copy
'Selection.Copy
ActiveSheet.Paste
Selection.Name = "aaa"
End Sub
を実行する。
コピーして貼り付けた直後の段階で、その図形がSelectされているので、間髪を入れず(他の操作が入らない段階で、ただプログラム実行中は普通は入らない)Selectionを使って取り出し(=オブジェクトを掴んで)、名前をつけてしまう。
ーー
確認用に
標準モジュールに
Sub test01()
For i = 1 To Worksheets("Sheet1").DrawingObjects.Count
MsgBox Worksheets("Sheet1").DrawingObjects(i).Name
Next i
End Sub
を作って、前記の貼り付け実行後、こちらを実行すると、「指定した名前で、長方形が増えている」ことがわかると思う。
ーーー
この辺は私にとっては難しい(すっきりしない)点で、別のコードの書き方があるようにも思うが、今すぐは出てこない。
エクセル・バージョンによっても変わる恐れがあるように思う。
すばやい回答有難う御座います。
確認用も分かりやすく参考になりました。
<<間髪を入れずSelectionを使って取り出し名前をつけてしまう。
なるほど、No1さんと同様ですか。作っては消すということを繰り返すようなエクセルシートだと
コピーした瞬間にできるオブジェクト名の数字がどんどん膨れ上がりますね・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
4
エクセルVBAで画像を貼り付ける座標設定方法は?
PowerPoint(パワーポイント)
-
5
excel/vbaにてオートシェイプに名前の定義づけ
Excel(エクセル)
-
6
【VBA】3個の図形をコピーしてSheet2に貼り付けたい
Excel(エクセル)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
Excel 2010マクロで挿入した画像に名前が付けられない!
その他(Microsoft Office)
-
9
EXCEL VBA オートシェイプナンバーのリセット
Visual Basic(VBA)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
エクセルVBAでセル番地を指定してオブジェクト名取得
Excel(エクセル)
-
12
VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗
Access(アクセス)
-
13
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
14
EXCEL VBAでオートシェイプの重なりを検知するには?
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセルマクロで指定範囲内の図形を削除
Excel(エクセル)
-
17
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
18
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
19
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
20
押したボタンの位置取得(共通のマクロ)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
【Excel】マクロでページを追加...
-
5
エクセル連番自動印刷について
-
6
パーソナルXLSBのfuctionを呼び...
-
7
グラフ要素のセルを参照したい...
-
8
エクセルVBAで納期管理システム...
-
9
EXCEL VBA 他のアプリケーショ...
-
10
エクセルVBAでNAVITIMEを使って...
-
11
エクセルでマクロ登録の不具合解消
-
12
【ExcelVBA】マクロブックを通...
-
13
ExcelのVBAで自動採番したい...
-
14
マクロで非表示シート内にある...
-
15
Excelでマクロ実行中に画面を固...
-
16
VBAで行コピーして挿入
-
17
CSVデータをEXCELのテーブルに...
-
18
VBAで保存しないで閉じると空の...
-
19
WPSOffice_マクロの有効化について
-
20
Excelのマクロでボタンを押すと...
おすすめ情報
公式facebook
公式twitter