• 締切済み

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

複数シートのあるブックを開いた際、常時は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

  • EXCELでのシートの再表示(マクロ)

    あるエクセルのブックで、マクロを使い、複数のシートを非表示にしていました。 うっかり、そのマクロを削除してしまいました。 非表示にしたシートを、再表示する方法をお教えください。 なお、非表示にしたシートは、複数あり、シート名も不確かです。 よろしくお願いします。

  • エクセルのマクロでシートを表示させる

    マクロ初心者です。 1つのブックに20シート入っているのですが、 チェックBOXにチェックを付け、該当するシートのみを表示させるマクロを教えてください。 sheet1以外の下記のシートA~Dは非表示になっており sheet1にはシート名 A B C D というチェックBOXがあり、 例えば、Bにチェックを入れるとBのシートが表示され、 AとDなど複数チェックが入るとチェックしたシートが表示される様な マクロがありましたら、教えてください。 マクロの記録で読み込ませているのですが、複数シートの為、限界を感じております。 よろしくお願い致します。

  • エクセル 非表示のシートをハイパーリンクで表示できますか?

    こんにちは。 エクセルのブック内で、目次シートが1枚、詳細シートが3枚あります。目次の中の項目をクリックすると各詳細シートが開くようにハイパーリンクを設定してあります。 このままでも使えますが、詳細シート3枚を非表示にするとハイパーリンクが機能せず詳細シートが出てきません。 これはエクセルの仕様なんでしょうか?それとも設定の仕方が悪いんでしょうか? ちなみに友人が作ったVBAで設定したらうまくいきました。VBA以外に設定できる方法があるのであれば教えて頂ければ幸いです。 よろしくお願い致します。

  • EXCELのシートのマクロ操作について

    EXCELについて質問がありまして、よろしくお願いします。 複数のシートがあるブックがあり、それを、それぞれシートごとに別のブックにしたいと思っています。 マクロやVBAなどを使って簡単に出来るものでしょうか? マクロ集などのサイトを探してみましたが、上手く見つけることができませんでした。 シート名をブック名として引き継いで保存できればベターだと思っております。それが出来なくてもブックとして起こせれば大丈夫です。 何かわかられましたらお教えいただけますと幸いです。 どうぞよろしくお願いします。

  • EXCELのシート名を指定してそのシートを開くマクロ、VBA?

    いつもお世話になります。 次々とシートを追加していくブックがあります。 Sheet1にマクロボタンを作成して、例えばSheet1のA1に「5」と入力すればSheet5が、「8」と入力すればSheet8が、開くようにしたいのですがそのようなマクロは可能でしょうか? (シートのハイパーリンクを利用した目次ではありません。) 初心者ですがよろしくお願いします。

  • エクセルVBA 非表示シートがあるとエラー

    VBA初心者です。 エクセル2007を使用しております。 同一ブック内にある全てのシートで特定のマクロ(下記の例では×××)を実行するようにVBAマクロを個人用マクロブック上に作成しております。 Sub シート一括処理() Dim Sht As Worksheet For Each Sht In Worksheets Sht.Select Call ××× Next Sht End Sub ブック内に非表示シートがあった場合、エラーとなります。 ===================== 実行時エラー'1004' 'select'メソッドは失敗しました: ===================== 下記のような要件を満たすにはどのように修正すればよいでしょうか。 ・非表示シートに対しても、×××マクロは適応したい。 ・非表示シートは暫定的に表示してもよいが、最終的には非表示の状態にしたい。 よろしくお願いします。

  • エクセルに不要なスタイルが入ってしまいました

    Excel 2003 ブックが多くなってきたので、整理することにしました。 複数のブックをまとめ、メニュー用シートを作り、ハイパーリンクを設定しました。 この時、ネットで調べた、VBAのコードを貼り付け、自動でワークシート名を取得するマクロを作成したりもしました。 このマクロは作業終了後に削除しました。 追加で新しく、ワークシートを入れたのですが、その際、1シートだけなので、 Ctrl + Kでハイパーリンクの挿入を行ったのですが、 フォントサイズが小さくなり、ネットで調べると、書式→スタイル→ハイパーリンクで フォントサイズを変更すると解説があり、その通りしてみると、 "護されたシートに対して、このコマンドは使用できません。保護を解除するには、[ツール]メニューの[保護]をポイントし、[シート保護の解除]をクリックします。パスワードの入力を要求されることもあります。" と表示され、書いている通り、「ツール」メニューの「保護」をポイントしたが、シート保護の解除はありません。 また、スタイルには、他のブックと比べるとものすごい多いスタイルが設定されています。 他のブックと見比べながら、スタイルを消そうとしても、消せれません。 新しいブックに、ワークシートをコピーして作り直そうとしても、どのシートをコピーしても、不要なスタイルが入ってしまいます。

  • Excel シート上に配置したボタンを無効にするに

    Excelブックのワークシート上には いくつかのボタンが配置されていて 各ボタンをクリックすると 対応するマクロが呼び出されるようになっているのですが、 Excelブックを配布するユーザー毎に 使用するボタンと使用しないボタンがあります。 配布前に、シート上のボタンを手(VBAではなく)で 無効(グレー表示)にして、 ユーザーがクリックしても何も起きない (ボタンが押し込まれたりマクロが呼び出されたりしない) ようにしておきたいのですが マクロはいじらずに このようなことは可能でしょうか。 必要のないボタンを消す方法もありますが ボタンが消えてしまうと画面の表示の 見た目が悪くなるので、 ボタンが表示されていて機能しないように しておきたいです。 (Windows7 ,Excel2010)

  • Excelのシート移動

    初めまして。エクセル超初心者です。  早速ですが、ここにBook1とBook2の二つのブックがあるとします。Book1で現在参照しているSheetをBook2の例えばSheet2の前に移動、というマクロ(VBA?)を作成し、ボタン一つで移動するようにしたいのですが、どの様にすればよいのでしょうか。お教えください。

  • エクセルのVBAで新しくブックを開いた上でさらに…

    エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか? 分かりにくいと思うので具体的にかきます。 今、ブック1にコマンドボタンAがあり、このボタンAを押す事により 以下の2つを実現したいです。 (1)あたらしくブック2を開きます。 (2)更にこのブック2のシートにはコマンドボタンBができており (3)このボタンBの機能としてこのボタンBを押すと  ブック2のセルA1に数字1が入ります ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。 今、ボタンAを押すことで(1)と(2)まではできるのですが (3)のやり方がわかりません。 そもそもこういった事はできないのでしょうか? ご存知の人がいたら教えてください。よろしくお願いします。

専門家に質問してみよう