• 締切済み

エクセルシートの表示、非表示について

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

みんなの回答

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.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 シートがもっと沢山あるときは、汎用的なコードにしたほうがいいかもしれませんが、まずはこれで試してみてください。

ryouyuuki
質問者

お礼

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

関連するQ&A