Excel VBA質問箱 IV

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

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


7743 / 13644 ツリー ←次へ | 前へ→

【37087】クリックされたコマンドボタンの番号 monmon 06/4/21(金) 0:38 質問[未読]
【37088】クリックされたコマンドボタンのセル番号 monmon 06/4/21(金) 1:05 質問[未読]
【37090】Re:クリックされたコマンドボタンのセル番号 Kein 06/4/21(金) 1:31 回答[未読]
【37137】Re:クリックされたコマンドボタンの番号 monmon 06/4/23(日) 3:28 お礼[未読]

【37087】クリックされたコマンドボタンの番号
質問  monmon  - 06/4/21(金) 0:38 -

引用なし
パスワード
   エキスパートの皆様

コマンドボタンが30個あるシート上にあります。(CommandButton1 - ComanndButton30).ここであるコマンドボタンがクリックされたときに、そのコマンドボタンの番号を出力する方法を教えてください。

お願いします。

【37088】クリックされたコマンドボタンのセル番号
質問  monmon  - 06/4/21(金) 1:05 -

引用なし
パスワード
   追加です。

クリックされたコマンドボタンのセル番号を取得する方法も教えてください。ここで、各ボタンはA1からA30まで、一つ一つあります。

お願いします

【37090】Re:クリックされたコマンドボタンのセル...
回答  Kein  - 06/4/21(金) 1:31 -

引用なし
パスワード
   そーいう処理は、ボタンの種類を「フォームツールバー」
のものにしておくに限ります。もし現在のボタンがコントロールツールバーの
ものなら

Sub Del_BT()
  Dim Obj As OLEObject
 
  For Each Obj In ActiveSheet.OLEObjects
   If Obj.ProgId = "Forms.CommandButton.1" Then
     Obj.Delete
   End If
  Next
End Sub

を1回実行して削除して下さい。そして以下のマクロを1回実行すれば、フォームの
ボタンを配置 & マクロ登録を自動的に行います。

Sub Add_BT()
  Dim i As Integer
  Dim Tp As Single, Wp As Single, Hp As Single

  With Range("A1")
   Wp = .Width: Hp = .Height
  End With
  With ActiveSheet
   For i = 1 To 30
     Tp = .Cells(i, 1).Top
     .Buttons.Add 0, Tp, Wp, Hp
   Next i
   .Buttons.OnAction = "MyButton_Info"
  End With
End Sub

以下のマクロは削除しないで下さい。

Sub MyButton_Info()
  Dim x As Variant

  x = Application.Caller
  If VarType(x) <> 8 Then Exit Sub
  With ActiveSheet.Buttons(x)
   MsgBox "インデックス = " & .Index & vbLf & _
   "名前 = " & .Name & vbLf & "配置した行 = " & _
   .TopLeftCell.Row
  End With
End Sub

任意のボタンを押すと、そのボタンの情報をメッセージします。

【37137】Re:クリックされたコマンドボタンの番号
お礼  monmon  - 06/4/23(日) 3:28 -

引用なし
パスワード
   ありがとうございます。
無事解決しました

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