プロが教えるわが家の防犯対策術!

複数シートのあるブックを開いた際、常時はsheet1だけを表示して残りのシートについてはsheet1に貼り付けた各コマンドボタンで各シートが表示されるようエクセルマクロを使って作ってみたのですが、コマンドボタンではなくハイパーリンクを使ってできないものかと悩んでいます。単純に全シートが表示された状態ならハイパーリンクで何の問題もないのですが、ハイパーリンクをクリックしたときに該当のシートが表示され、sheet1に戻ると他のシートは非表示にしておきたいのですが、なにかいい方法はないでしょうか?
VBAも最近使い始めまだまだ、素人故稚拙な質問の仕方で申し訳ないのですが、どなたかお力添えください。よろしくお願いします。

A 回答 (1件)

ちょっとしょぼいかもしれないですけど、こんなのでどうでしょう?


Sheet1~3があるとします。
Sheet1に「シート2」と「シート3」というハイパーリンクを作っておきます。
VBAでSheet1に下記コードを貼り付けてください。

' Sheet1表示時に他のシートを非表示にする
Private Sub Worksheet_Activate()
Worksheets("Sheet2").Visible = False
Worksheets("Sheet3").Visible = False
End Sub

' ハイパーリンクがクリックされたときの処理
' 名前で振り分けて対象のシートを表示・アクティブにする
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.Name
Case "シート2"
Worksheets("Sheet2").Visible = True
Worksheets("Sheet2").Activate
Case "シート3"
Worksheets("Sheet3").Visible = True
Worksheets("Sheet3").Activate
End Select
End Sub

シートがもっと沢山あるときは、汎用的なコードにしたほうがいいかもしれませんが、まずはこれで試してみてください。
    • good
    • 1
この回答へのお礼

かっ、感動しました!!本当にありがとうございます。うまくいきました!!
ここ最近、VBAを使って色々なマクロを作り始めたばかりなのですが、様々なことができる反面、素人の私が扱うにはかなり難解なことが多く、試行錯誤を繰り返していました。大変助かりました。

お礼日時:2006/04/25 15:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!