こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel VBA コマンドボタン教えてください

例えば
Sheet1で複数のコマンドボタンを作ります。
ボタン1からsheet9へ
ボタン2からsheet10へ
ボタン3からsheet11へ
とジャンプしたいのですがcommand buttonでこのようなことが出来ますか
出来ないようでしたら他の方法がありましたら御教授お願い致します。

投稿日時 - 2019-02-15 22:08:23

QNo.9588195

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

今晩は
どの様な処理を想定していますか
命令文は Sheets("シート名").Select ですが
ボタンはsheets上に貼り付けますので
ボタン2は移動先のsheetsに貼り付けることになります。
また、ボタン1に次のようだと
最後の"アルプス1万尺"のシートに移動することになります

Sub ボタン1_Click()
Sheets("受診カード").Select
Sheets("万年カレンダー").Select
Sheets("アルプス1万尺").Select
End Sub

具体的なQ なら的確なアドバイスが出来るのですが

投稿日時 - 2019-02-18 01:41:44

ANo.3

この質問の内容には、VBAでは、むつかしい問題を抱えている。
意識しての質問か。
(1)ボタンごとに似たコードを書く方法。
3つぐらいなら、初心者はそれで良し、とする人も多かろう。
(2)ボタンが10個以上、30個とかになると、
少し意識が高い人は、面倒だとか、スマートでないなどと思い出す。
それに対し、VBAでは素直な方法がない。コントロール配列という方法もVBAでは使えない。
そこで解説されるのは、WithEventsを使った、またクラスモジュールを使った方法です。
Googleで「VBA クラス WithEvents ボタン 多数」で照会すると、記事が出てくる。
例 https://blog.goo.ne.jp/pc_college/e/9ca2b0c452e9e691cad1dbd2783868cf
しかし「クラス」という考えに慣れていない人には、当面は何のことか分からない恐れが多いと思う.でもVBAでは有名なトッピクスです。
ーー
だから、質問者は、
Private Sub CommandButton1_Click()

End Sub
(Button1のところが、2つ目以降は2,3、・・と変わるが)をボタンの数だけ作って、
Private Sub とEnd Subもの間にSheet9、Sheet10・・に飛ぶコードを別々に書きこむことを、勧める。
(3)あるシートへ飛ぶコード
http://officetanaka.net/excel/vba/tips/tips125.htmにある
Sub Sample4()
Application.Goto Sheets("Sheet3").Range("D5")
End Sub
に倣って、Sheet3に行く場合は
Private Sub CommandButton1_Click()
Application.Goto Sheets("Sheet3").Range("A1")
End Sub
のような書き方もある。上記WEB記事にあるように、結構むつかしい点を
含んでいる。

投稿日時 - 2019-02-16 21:31:38

ANo.2

ボタンによる解決方法は書かれているので代替案を
セルに
=hyperlink("#sheet1!a1","シート1へ")
と入力しておき、これをクリックすると、sheet1のa1セルに移動します。

投稿日時 - 2019-02-16 04:12:46

ANo.1

Q、Sheet1からSheet9、10、11へ移動するには?
A、ALT+9、ALT+A、ALT+Bで移動。

 当方、Excel のVBAなんてのは一度も書いたことのないド素人。だから、以下のように検索とテストを重ねて、上記の解を得た次第。だから、完全な的外れもありえる。参考程度に読み流してください。

【1、Excel コマンドボタンで検索】

 コマンドボタンを配置

【2、Excel VBA シート移動で検索】

 検索トップの以下のコードをコピペ。

  Private Sub CommandButton1_Click()
    Dim bk As Workbook

    Set bk = ActiveWorkbook
    bk.Worksheets(2).Select
  End Sub

【3、念の為にbk.Worksheets(2).Selectで検索】

 検索トップの以下のコードをコピペ。

  Private Sub CommandButton1_Click()
  Worksheets("Sheet2").Select
  End Sub

  Private Sub CommandButton1_Click()
  Worksheets("Sheet2").Activate
  End Sub

  Private Sub CommandButton1_Click()
  Worksheets(2).Select
  End Sub

  Private Sub CommandButton1_Click()
  Worksheets(2).Activate
  End Sub

  Private Sub CommandButton1_Click()
  Sheet2.Select
  End Sub

 いずれも、目的を達成。

【4、質問の回答を考える】

>ボタン1からsheet9へ
>ボタン2からsheet10へ
>ボタン3からsheet11へ

 コマンドボタンを三つも配置するのか?ウーン!ウーン!なんとか、ショートカットキーで実現出来ないだろうか?で、コマンドボタンのプロパティを添付図のように設定した。

《コマンドボタンを非表示にしたら?》・・・非表示でも動いた!

 よし、これで行こう!

【5、最終的には・・・】

Option Explicit

Private Sub CommandButton1_Click()
  Sheet9.Select
End Sub

Private Sub CommandButton2_Click()
  Sheet10.Select
End Sub

Private Sub CommandButton3_Click()
  Sheet11.Select
End Sub

で、

ALT+9・・・シート9へ移動
ALT+A・・・シート10へ移動
ALT+B・・・シート11へ移動

で決着。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2019-02-15 23:51:42

あなたにオススメの質問