Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1147 / 13645 ツリー ←次へ | 前へ→

【76051】VBAソースへのジャンプについて happygolucky1124 14/9/3(水) 20:06 質問[未読]
【76052】Re:VBAソースへのジャンプについて happygolucky1124 14/9/3(水) 20:38 発言[未読]
【76053】Re:VBAソースへのジャンプについて 独覚 14/9/4(木) 9:42 回答[未読]
【76054】Re:VBAソースへのジャンプについて happygolucky1124 14/9/4(木) 11:21 質問[未読]
【76055】Re:VBAソースへのジャンプについて 独覚 14/9/4(木) 11:30 発言[未読]
【76056】Re:VBAソースへのジャンプについて happygolucky1124 14/9/4(木) 13:10 お礼[未読]

【76051】VBAソースへのジャンプについて
質問  happygolucky1124  - 14/9/3(水) 20:06 -

引用なし
パスワード
   EXCEL2012&windows7を使用しております。

ひとつのエクセルファイルに複数のシート/複数のVBAマクロが
あるのですが、このファイルにどんなマクロがどこにあるのかの
まとめ(目次みたいなもの)のシートを作ろうとしています。

そこで、まとめシートから1クリックで、
・VBAマクロの置いてあるシートへのジャンプ
・VBAマクロの概要/説明/使用方法が書いた場所へのジャンプ
・VBAマクロのコードへのジャンプ
ができるようにしたいと考えています。

・VBAマクロの置いてあるシートへのジャンプ
・VBAマクロの概要/説明/使用方法が書いた場所へのジャンプ
はハイパーリンクで実現可能なのですが、
・VBAマクロのコードへのジャンプ
の実現方法がわかりません。

エクセル自体の機能でもVBAマクロを新たに書くのでも良いのですが
そもそも実現可能でしょうか?
可能であれば実現方法を教えて頂けないでしょうか。

ハイパーリンクのようにセル***に書かれた文字をクリックしたら
VBEが立ち上がり、シート***のPrivate Sub CommandButton**_Click()が
表示されるイメージです。

【76052】Re:VBAソースへのジャンプについて
発言  happygolucky1124  - 14/9/3(水) 20:38 -

引用なし
パスワード
   >ハイパーリンクのようにセル***に書かれた文字をクリックしたら
>VBEが立ち上がり、シート***のPrivate Sub CommandButton**_Click()が
>表示されるイメージです。

と書きましたが、VBAのコマンドボタンを押してでもいいですし
方法は問いません。

お聞きしたかったのはVBAのソースに直接飛ぶことが出来るか?
出来るのなら方法は。。。?です。

【76053】Re:VBAソースへのジャンプについて
回答  独覚  - 14/9/4(木) 9:42 -

引用なし
パスワード
   ▼happygolucky1124 さん:
2010で簡単なテストしかしていませんが。

同じモジュール内であれば
Application.Goto "プロシージャ名"
で、違うモジュールの場合は
Application.Goto "モジュール名.プロシージャ名"
でVBエディタが開かれ、指定したプロシージャの場所にカーソルが移動します。

ここで同じモジュール、違うモジュールとは「Application.Goto」が書かれている
モジュールと同じかどうかになります。
なお、同じモジュール内で、モジュール名を指定しても問題ありません。

【76054】Re:VBAソースへのジャンプについて
質問  happygolucky1124  - 14/9/4(木) 11:21 -

引用なし
パスワード
   ▼独覚 さん:
回答ありがとうございます。
が、まだ実現できていません。

VBAProject(****.xls)
|-Microsoft Excel Objects
 |-Sheet1(****)
 |-Sheet2(****)
 |-Sheet3(****)
 |-Sheet4(****)
 |-Sheet5(****)
 |-Sheet6(****)
 |-Sheet7(****)

という環境の下で(これだと同一モジュール内ですよね)
Sheet1がまとめシートとして、
1.Sheet1のCommandButton1をクリックすると
2.VBEを開き、Sheet7のCommandButton7_Clickを表示する
を実現するにはSheet1のCommandButton1_Clickに
どう記述したらいいのでしょうか?

Application.Goto "CommandButton7_Click"
でもNGですし
Application.Goto Worksheets("Sheet7").CommandButton7_Click
でも文法的にNGですし。。。

申し訳ないのですが、もう一段深く教えていただけるとありがたいです。

【76055】Re:VBAソースへのジャンプについて
発言  独覚  - 14/9/4(木) 11:30 -

引用なし
パスワード
   ▼happygolucky1124 さん:
モジュールは以下の場合、Sheet1、Sheet2…になります。
これはシートモジュールと言います。
構造としては上から
プロジェクト
モジュール
プロシージャ
の順になります。

>VBAProject(****.xls)
>|-Microsoft Excel Objects
> |-Sheet1(****)
> |-Sheet2(****)
> |-Sheet3(****)
> |-Sheet4(****)
> |-Sheet5(****)
> |-Sheet6(****)
> |-Sheet7(****)

なので

>VBEを開き、Sheet7のCommandButton7_Clickを表示する

Application.Goto "Sheet7.CommandButton7_Click"
としてみてください。

【76056】Re:VBAソースへのジャンプについて
お礼  happygolucky1124  - 14/9/4(木) 13:10 -

引用なし
パスワード
   ▼独覚 さん:
早速の回答ありがとうございます。

>Application.Goto "Sheet7.CommandButton7_Click"
で無事実現できました。
アドバイスありがとうございました。

1147 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free