• 締切済み

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

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

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

今晩は どの様な処理を想定していますか 命令文は Sheets("シート名").Select ですが ボタンはsheets上に貼り付けますので ボタン2は移動先のsheetsに貼り付けることになります。 また、ボタン1に次のようだと 最後の"アルプス1万尺"のシートに移動することになります Sub ボタン1_Click() Sheets("受診カード").Select Sheets("万年カレンダー").Select Sheets("アルプス1万尺").Select End Sub 具体的なQ なら的確なアドバイスが出来るのですが

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.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記事にあるように、結構むつかしい点を 含んでいる。

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.2

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

回答No.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へ移動 で決着。

関連するQ&A