![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
複数のコマンドボタン(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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) でシートをコピーしたときに 見えないようにする方法 1 2022/04/10 20:27
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
VBAで多数のプログラムを一つのボタンに集約することは可能でしょうか?
Visual Basic(VBA)
-
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
7
コマンドボタンがあるかどうかを取得するには?
PowerPoint(パワーポイント)
-
8
UserForm1.Showでエラーになります。
工学
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
マクロの連続実行
Access(アクセス)
-
11
Accessの更新後処理で特定の条件を満たしている場合、フォーカスを移動させない方法
PowerPoint(パワーポイント)
-
12
複数シートのボタンに同一の動作をさせたい
Excel(エクセル)
-
13
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
14
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
15
IF文に時間(何時から何時まで)の条件文を付けたい
Word(ワード)
-
16
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
17
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
18
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA ユーザーフォームの Keypre...
-
Groupboxの配下のコントロール...
-
カメラスクロールするのを動画...
-
ユーザーフォームで動的(Me.Con...
-
エクセルVBAユーザーフォーム・...
-
全てのオブジェクトのプロパテ...
-
エクセルVBAでオプションボタン...
-
Excel VBA で Richtextboxを使...
-
アクセス特有の書き方?
-
ExcelVBAでListViewが使用できない
-
コントロールを移動できない
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
excelのリストボックスで選択し...
-
C#で角が丸いテキストボックス
-
OCXって何ですか?
-
Excelコマンドボタン名を変数に...
-
コンボボックスの文字によるif...
-
トグルボタン一部を一度にON OF...
-
Pictureコントロールの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
ExcelVBAでListViewが使用できない
-
ユーザーフォームで動的(Me.Con...
-
VBA ユーザーフォームの Keypre...
-
チェックボックスをオンにした...
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
C# Form上に配置されたコントロ...
-
コントロールを移動できない
-
EXCELでactivexコントロールを...
-
'ckbl' コントロールは作成され...
-
vb.netで画面のコントロールId...
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
C#で角が丸いテキストボックス
-
全てのオブジェクトのプロパテ...
-
変数をコントロール型で使用す...
-
コンボボックスの文字によるif...
おすすめ情報