• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のコマンドボタン(VBAで)を一つにまとめたい。)

VBAで複数のコマンドボタンを一つにまとめる方法

このQ&Aのポイント
  • VBAを使用して複数のコマンドボタンを一つにまとめる方法について教えてください。現在、複数のコマンドボタン(VBAで)があり、それぞれが特定のセルを参照しています。これを、一つのコマンドボタンにまとめることは可能でしょうか?
  • VBAを使用して複数のコマンドボタンを一つにまとめる方法について教えてください。現在、複数のコマンドボタン(VBAで)があり、それぞれが異なるセルを参照しています。一つのコマンドボタンをクリックすると、それぞれのセルにスクロールしたいのですが、これを実現する方法はありますか?
  • VBAを使用して複数のコマンドボタンを一つにまとめる方法について教えてください。現在、複数のコマンドボタン(VBAで)がありますが、見た目をスッキリさせるために一つのコマンドボタンにまとめたいです。どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

ふたつ答えを出しておきますので、お好きなほうを使えばよいです。フォームコントロールですれば、早いと思います。 あえて、OLEコントロールツールでというなら、インスタンスを設けます。 Index にしていますから、ツールのCaptionの名称は関係がありません。上(または左)から順番になります。 '//フォームコントロール用 Sub Buttons_Click()   Dim objCnt As Object   Dim i As Long   If TypeName(Application.Caller) = "String" Then     On Error Resume Next     Set objCnt = ActiveSheet.Buttons(Application.Caller)     If Err.Number > 0 Then Exit Sub     On Error GoTo 0   End If   i = objCnt.Index - 1   Application.Goto Cells(i * 22 + 7, 1), Scroll:=True End Sub '=========== 'OLEコントロールの場合 '//Class1 (クラスモジュール) Public WithEvents myBtn As MSForms.CommandButton 'モジュール上部へ Private Sub myBtn_Click()   Dim i As Integer   i = myBtn.Index - 1   Application.Goto ActiveSheet.Cells(i * 22 + 7, 1), Scroll:=True   ''MsgBox ActiveSheet.Cells(i * 22 + 7, 1).Address 'チェック用 End Sub '//標準モジュール Public myClass As New Class1 'モジュール上部へ Sub Auto_Open()   Dim ctrl As Object   Dim i As Integer Static myClass() As Class1      For Each ctrl In Worksheets("Sheet1").OLEObjects '明示的にシート名を入れる     If TypeOf ctrl.Object Is MSForms.CommandButton Then       ReDim Preserve myClass(i)       Set myClass(i) = New Class1       Set myClass(i).myBtn = ctrl.Object       i = i + 1     End If   Next End Sub '戻る側がありませんが、ダブルクリック・イベントなりで、元に戻るほうを入れたほうがよいですね。

その他の回答 (2)

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

おはようございます プロシージャや関数から別のプロシージャや関数を呼び出すことが出来ます。 このとき、変数を渡すことも出来ます。 以下はサンプルです。 Private Sub CommandButton1_Click()   Call JampToCell("A7") End Sub Private Sub CommandButton2_Click()   Call JampToCell("A29") End Sub Private Sub CommandButton3_Click()   Call JampToCell("A51") End Sub Private Sub JampToCell(TargetCell As String)   Application.Goto Range(TargetCell), True End Sub

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

こちらに入門編から上級編まであります。 http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm

関連するQ&A