Excel VBA質問箱 IV

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

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


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

【24704】クリックされたボタンの番号を知る方法 kobasan 05/5/5(木) 1:14 質問[未読]
【24705】Re:クリックされたボタンの番号を知る方法 ichinose 05/5/5(木) 7:43 発言[未読]
【24706】Re:クリックされたボタンの番号を知る方法 kobasan 05/5/5(木) 8:36 お礼[未読]

【24704】クリックされたボタンの番号を知る方法
質問  kobasan  - 05/5/5(木) 1:14 -

引用なし
パスワード
   今晩は

クリックされたボタンの番号を知るよい方法があれば教えてください。
ボタンに別々のブロージャを割り当てれば簡単にできるのですが、全てボタンに共通のブロージャ msg を割り当ててやりたいと思っています。

Sub MyCmdBar2()
Dim 親 As Object
  On Error Resume Next
  CommandBars("NewBar").Delete
  '
  Set 親 = Application.CommandBars.Add(Name:="NewBar", temporary:=True, Position:=msoBarTop)

  For i = 1 To 30
    Set btn = CommandBars("NewBar").Controls.Add(msoControlButton)
    With btn
      .Style = msoButtonIconAndCaption
      .Caption = ""
      .OnAction = "msg"
      .FaceId = 200 + i
    End With
  Next
  Set btn = Nothing  '解放

  CommandBars("NewBar").Visible = True  'コマンドバーを表示
End Sub

Sub msg()
  MsgBox "Clickされたボタンの番号=" & "(???)" & vbCrLf _
        & "ClickされたボタンのFaceIdの番号=" & "(???)"
End Sub

【24705】Re:クリックされたボタンの番号を知る方法
発言  ichinose  - 05/5/5(木) 7:43 -

引用なし
パスワード
   ▼kobasan さん:
おはようございます。

>クリックされたボタンの番号を知るよい方法があれば教えてください。
>ボタンに別々のブロージャを割り当てれば簡単にできるのですが、全てボタンに共通のブロージャ msg を割り当ててやりたいと思っています。

Application.Callerというプロパティを使用してみて下さい。

過去ログで投稿していました。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=22660;id=excel

参考にしてみて下さい。

【24706】Re:クリックされたボタンの番号を知る方法
お礼  kobasan  - 05/5/5(木) 8:36 -

引用なし
パスワード
   ▼ichinose さん おはようございます。

>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=22660;id=excel
>
>参考にしてみて下さい。

Application.Callerプロパティを使用して、解決できました。
Application.Callerプロパティは以前使ったことがあったのですが、
使い慣れていないので思い出せませんでした。

既に、クラスモジュールを使って同じ動作のものを作ることができましたが、
Application.Callerプロパティを使った方が、すっきりできました。

ありがとうございました。

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