Excel VBA質問箱 IV

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

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


747 / 13645 ツリー ←次へ | 前へ→

【78569】オートシェイプに名前を付ける方法 りった 16/11/14(月) 18:45 質問[未読]
【78570】Re:オートシェイプに名前を付ける方法 β 16/11/14(月) 19:11 発言[未読]
【78572】Re:オートシェイプに名前を付ける方法 りった 16/11/15(火) 15:38 お礼[未読]
【78574】Re:オートシェイプに名前を付ける方法 β 16/11/15(火) 18:30 発言[未読]
【78575】Re:オートシェイプに名前を付ける方法 β 16/11/15(火) 18:35 発言[未読]
【78576】Re:オートシェイプに名前を付ける方法 りった 16/11/16(水) 18:06 お礼[未読]
【78571】Re:オートシェイプに名前を付ける方法 カリーニン 16/11/14(月) 20:23 発言[未読]
【78573】Re:オートシェイプに名前を付ける方法 りった 16/11/15(火) 15:41 お礼[未読]

【78569】オートシェイプに名前を付ける方法
質問  りった  - 16/11/14(月) 18:45 -

引用なし
パスワード
   オートシェイプに名前を付ける方法及び名前を参照する方法が有ればご教示頂けますでしょうか?

【78570】Re:オートシェイプに名前を付ける方法
発言  β  - 16/11/14(月) 19:11 -

引用なし
パスワード
   ▼りった さん:

名前を付けるには、どのシェープなのかを特定しなければいけませんね。
今作ったシェープに名前を付けるとか、今はこんな名前のシェープだけど、それを変更するとか
シート上のシェープをマウスで選択して、そのシェープに名前を付けるとか。

以下は、最後のケースの例でし。

Sub Sample()
  Selection.ShapeRange.Name = "Hoge"
End Sub

名前を参照する というのは、具体的には?

シート.Shapes("その名前") で参照できますよねぇ??

【78571】Re:オートシェイプに名前を付ける方法
発言  カリーニン  - 16/11/14(月) 20:23 -

引用なし
パスワード
   横から失礼します。

下衆の勘繰りです。

シェイプにマクロを登録して呼び出す、ということが可能です。
この場合は、シェイプに名前を付けたり、名前を取得したりは不要です。

Sub test()
With ActiveSheet.Shapes(Application.Caller)
  .Left = .Left + 10
End With
End Sub

【78572】Re:オートシェイプに名前を付ける方法
お礼  りった  - 16/11/15(火) 15:38 -

引用なし
パスワード
   回答有難うございます。

GUIで名前を変更したり、参照したりする方法を期待していました。
例えば、「開発」リボンの「プロパティ」でWorksheetのプロパティが見れますが、
そんな感じでオートシェイプも変更/参照出来ないものかと思ってました。
(それ自体はマクロではありませんが、マクロにしか使わない操作ですので
マクロの掲示板で質問させて頂いております。)

ご教示頂いたコードをイミディエイトウィンドウから実行することで
とりあえずは何とかなります。有難うございます。
Selection.ShapeRange.Name = "Hoge"
? Selection.ShapeRange.Name

やってみて気が付いたのですが、変わった仕様(少なくとも私にとって)なんですね。
・複数のオートシェイプに同じ名前を付けることが可能。
・複数のオートシェイプに同じ名前(例:Hoge)を付けて、
 Sheet1.Shapes("Hoge").fill.ForeColor.RGB = RGB(0,255,0)
 すると、一つだけ緑になる。(最初に作ったオートシェイプ?)
・操作されたオートシェイプを削除して、再度
 Sheet1.Shapes("Hoge").fill.ForeColor.RGB = RGB(0,255,0)
 すると、別の一つが緑になる。(2番目に作ったオートシェイプ?)

【78573】Re:オートシェイプに名前を付ける方法
お礼  りった  - 16/11/15(火) 15:41 -

引用なし
パスワード
   回答有難うございます。
今作っているものには不向きですが、今後必要になった際に参考にさせて頂きます。

【78574】Re:オートシェイプに名前を付ける方法
発言  β  - 16/11/15(火) 18:30 -

引用なし
パスワード
   ▼りった さん:

>GUIで名前を変更したり、参照したりする方法を期待していました。
>例えば、「開発」リボンの「プロパティ」でWorksheetのプロパティが見れますが、
>そんな感じでオートシェイプも変更/参照出来ないものかと思ってました。

ふつうにできますよ。

・シェープを選びます。
・エクセル画面の左上のほう、名前ボックスがありますよね。
 ここに選んだシェープの名前が表示されていますので、この中を打ち直すと
 打ち直した名前が設定されます。(名前の変更ができます)

参照なら

・名前ボックスに、参照したいシェープの名前を入れてエンター
・そのシェープが選択されます。

【78575】Re:オートシェイプに名前を付ける方法
発言  β  - 16/11/15(火) 18:35 -

引用なし
パスワード
   ▼りった さん:

追加で。

シェープを選択し、右クリックで、メニューから
サイズとプロパティ、あるいは 図形の書式設定を選ぶと、いろいろ参照可能ですし
また、ここで、設定の変更もできます。

さらに、ホームタブ 検索と置換のオブジェクトの選択と表示 を選ぶと、シート上のシェープが列挙されます。
また、オブジェクトの選択 を選び、選択したいシェープ群をマウスで囲めば、それらが選択されます。

【78576】Re:オートシェイプに名前を付ける方法
お礼  りった  - 16/11/16(水) 18:06 -

引用なし
パスワード
   おお!感動です。すばらしい。
セルの名前定義と一緒なんですね。(何故気が付かなかったのか。。。アホです。)
「オブジェクトの選択と表示」も便利です。
クイックアクセスツールバーに入れました。
実は、パワポマクロでも困っていたのですが、そっちも解決しました。
有難うございます。

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