
複数のコマンドボタン(VBAで)を一つにまとめたい。
Private Sub CommandButton1_Click()
Application.Goto Reference:=Range("A7"), Scroll:=True
End Sub
Private Sub CommandButton2_Click()
Application.Goto Reference:=Range("A29"), Scroll:=True
End Sub
Private Sub CommandButton3_Click()
Application.Goto Reference:=Range("A51"), Scroll:=True
End Sub
Private Sub CommandButton4_Click()
Application.Goto Reference:=Range("A73"), Scroll:=True
End Sub
Private Sub CommandButton5_Click()
Application.Goto Reference:=Range("A95"), Scroll:=True
End Sub
Private Sub CommandButton6_Click()
Application.Goto Reference:=Range("A117"), Scroll:=True
End Sub
Private Sub CommandButton7_Click()
Application.Goto Reference:=Range("A139"), Scroll:=True
End Sub
Private Sub CommandButton8_Click()
Application.Goto Reference:=Range("A161"), Scroll:=True
End Sub
Private Sub CommandButton9_Click()
Application.Goto Reference:=Range("A183"), Scroll:=True
End Sub
Private Sub CommandButton10_Click()
Application.Goto Reference:=Range("A205"), Scroll:=True
End Sub
Private Sub CommandButton11_Click()
Application.Goto Reference:=Range("A227"), Scroll:=True
End Sub
上記のように複数のコマンドボタンを関数化して一つにすることは出来るでしょうか?
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
'戻る側がありませんが、ダブルクリック・イベントなりで、元に戻るほうを入れたほうがよいですね。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
VBAで多数のプログラムを一つのボタンに集約することは可能でしょうか?
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
最初の1回のみにボタンクリックでマクロ実行する
Visual Basic(VBA)
-
5
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
6
PowerShellを使って関連付けられたアプリケーションでファイルを開く時のエラー
Excel(エクセル)
-
7
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
8
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
9
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
10
Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのコントロールの種類...
-
VBA ユーザーフォームの Keypre...
-
WEBユーザーコントロール
-
Shapeコントロールの.NET移行方法
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
カメラスクロールするのを動画...
-
Webカスコンってなんですか?
-
コンポーネント名を変数で指定
-
シートに2つ以上のActiveXコン...
-
EXCELでactivexコントロールを...
-
ControlTipTextの書式設定(Font...
-
エクセル・VBA CheckBoxのオブ...
-
VB.net webアプリケーションで...
-
エクセル IEをコピーし貼り付け...
-
WinAPIで電卓をクリック
-
VB6でシリアルポートの制御
-
エクセルVBAで2種類のCheckbox...
-
C# タブのコントロール取得
-
OCXって何ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAのコントロールの種類...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
'ckbl' コントロールは作成され...
-
カメラスクロールするのを動画...
-
VBA ユーザーフォームの Keypre...
-
vb.netで画面のコントロールId...
-
エクセル・VBA CheckBoxのオブ...
-
chr関数の呼び出しで「プロ...
-
エクセルVBAでオプションボタン...
-
Groupboxの配下のコントロール...
-
エクセル コントロールツール...
-
Labelコントロールの(左右)余...
-
チェックボックスをオンにした...
-
Excel VBA で Richtextboxを使...
-
アクセス特有の書き方?
-
(VBA)スピンボタンの大量...
-
ActiveX DLL と ActiveXコント...
-
C# ユーザコントロール内のボタ...
-
Excel VBA 動的に作成したチェ...
おすすめ情報