Excel VBA質問箱 IV

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

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


10897 / 13646 ツリー ←次へ | 前へ→

【19319】グループ名の取得について 知ろう途 04/10/28(木) 10:30 質問[未読]
【19321】Re:グループ名の取得について Jaka 04/10/28(木) 10:53 回答[未読]
【19322】Re:グループ名の取得について つん 04/10/28(木) 11:03 発言[未読]
【19328】Re:グループ名の取得について 知ろう途 04/10/28(木) 11:36 お礼[未読]
【19330】Re:グループ名の取得について つん 04/10/28(木) 14:00 回答[未読]
【19334】Re:グループ名の取得について 知ろう途 04/10/28(木) 14:54 お礼[未読]

【19319】グループ名の取得について
質問  知ろう途  - 04/10/28(木) 10:30 -

引用なし
パスワード
   こんにちは。マクロ勉強中のド素人なんですが、ご教授お願いします。
今{マクロの登録}がしやすいように、いくつかのボタンに同じマクロを登録し、Select Caseで分岐して処理を行っています。

ボタンの場合には、
Select Case Application.Caller
 Case "ボタン名1": 処理1
 Case "ボタン名2": 処理2  
 Case "ボタン名3": 処理3
End Select
で上手く機能したのですが、グループ化した図形の名前の取得が上手く出来ません。

Select Case ***********
 Case "グループ名1": 処理1
 Case "グループ名2": 処理2  
 Case "グループ名3": 処理3
End Select
としたい場合にはどのようにしたら良いんですか?
ヘルプでGroupShape ShapeRange Shapesを調べたのですがよくわかりませんでした。

それと、余計な図形に誤って{マクロの登録}をしてしまった場合にマクロを解除するには図形を作り直すしかないのでしょうか?
  

【19321】Re:グループ名の取得について
回答  Jaka  - 04/10/28(木) 10:53 -

引用なし
パスワード
   こんにちは。

>グループ化した図形の名前の取得が上手く出来ません。
Application.Caller で、グループ3とか出ませんか?
グループ番号は、何を基準にしてつけられるのか解らないので、グループ化した時に面倒でも自分で確認するしかないかと思います。

>余計な図形に誤って{マクロの登録}をしてしまった場合にマクロを解除するには図形を作り直すしかないの

でしょうか?
再度マクロ登録ダイアログを出して、マクロ名を消してやれば良いです。

【19322】Re:グループ名の取得について
発言  つん E-MAIL  - 04/10/28(木) 11:03 -

引用なし
パスワード
   こんにちは。

>で上手く機能したのですが、グループ化した図形の名前の取得が上手く出来ません。
>
>Select Case ***********
> Case "グループ名1": 処理1
> Case "グループ名2": 処理2  
> Case "グループ名3": 処理3
>End Select

ちょっとやってみましたが、グループ化した図形にマクロを登録しても、
内部的には(この言葉が適切かわかりませんが)一つ一つの図形に登録されている形になってるみたいです。

Sub グループ3_Click()
  MsgBox Application.Caller
End Sub

グループ3という図形をクリックして上記を実行した場合、一つ一つしかクリック出来なくて、結局返ってくるメッセージボックスにも、一つ一つの図形の名前しか返って来なかったです。
なので、グループ名で判断させずに、一つ一つの図形の名前で判断させるしかないように思えます。
私もあまり知識があるわけではないので、もしかしたら何か技があるかもしれませんが・・・

>それと、余計な図形に誤って{マクロの登録}をしてしまった場合にマクロを解除するには図形を作り直すしかないのでしょうか?

これは、単純に「マクロの登録」の「マクロ名」のところを削除すればいいんじゃないのかな?

【19328】Re:グループ名の取得について
お礼  知ろう途  - 04/10/28(木) 11:36 -

引用なし
パスワード
   Jakaさん、つんさん早速のお返事ありがとうございます。

>それと、余計な図形に誤って{マクロの登録}をしてしまった場合にマクロを解除するには図形を作り直すしかないのでしょうか?

おかげで解決いたしました。こんな単純な事も知らないとは、全くもって恥ずかしい限りです。

つんさんのおっしゃる通りMsgBoxを使っても一つずつが個別に表示されてしまうんです。

言葉少ない説明ですみません。
今やっていることは、エクセルのシートを縮小したような図形をいくつか作り、それぞれの図形とファイル名のオブジェクトをそれぞれグループ化しています。
今はそれぞれにマクロを登録してあるのですが、同じマクロを分岐させる方が図形の数を増やす場合に効率が良いので、上記の様な事を考え中です。

時間を割いてのお返事ありがとうございました。

【19330】Re:グループ名の取得について
回答  つん E-MAIL  - 04/10/28(木) 14:00 -

引用なし
パスワード
   再びこんにちは。

>今やっていることは、エクセルのシートを縮小したような図形をいくつか作り、それぞれの図形とファイル名のオブジェクトをそれぞれグループ化しています。
>今はそれぞれにマクロを登録してあるのですが、同じマクロを分岐させる方が図形の数を増やす場合に効率が良いので、上記の様な事を考え中です。

グループにする図形の名前を、グループ毎に系統だてて付けてそれで処理していけばどうですか?

例えば、グループAの図形は、A−1、A−2……とかして、
で、

Sub test()

  Dim strName As String
  
  strName = Left(Application.Caller, 1)
  
  Select Case strName
    Case "A": 処理A
    Case "B": 処理B
  End Select
      
End Sub

こんな感じで・・・・そしたら、グループ化した図形毎に処理が分岐出来ると思うけど・・・

【19334】Re:グループ名の取得について
お礼  知ろう途  - 04/10/28(木) 14:54 -

引用なし
パスワード
   >グループにする図形の名前を、グループ毎に系統だてて付けてそれで処理していけばどうですか?
>
>例えば、グループAの図形は、A−1、A−2……とかして、
>で、
>
つんさん再度返事ありがとうございます。
それも考えたんですが、その縮小版をつくるのを複雑にしてしまった為にグループ化している図形の数が多いんです。

やはり、あきらめます。ありがとうございました。

ところで、続けざまにこれも恥ずかしい質問になると思うんですが、みなさんの過去ログを見てるとどの人もかなりの数の変数を使用されているんですが、やはり変数を多用した方が良いのでしょうか?

なにぶんファイルサイズを気にしてモジュールを短くする為に変数はほとんど使いません。処理速度もあまり変わらないみたいですし。

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