- ベストアンサー
エクセル複数シートまとめる
- エクセルの複数シートを簡素化する方法について教えてください。
- 売上表や売り上げ内容など、複数のシートを効率的に表示したいと思っています。
- 表紙のシートを作成し、ハイパーリンクを使用する方法以外にも、シートの選択に応じて表示を切り替える方法があるでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No3です。訂正です。 それぞれのシートのコードペインに記載すると、あとあと訂正などがあると同じところを何か所も訂正しないといけなくなり面倒なので、左にあるThisWorkbookをダブルクリックして出たコードペインだけに以下のコードを記載してください。 Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim mSheet As Worksheet Dim DefaultSheetName As Variant Dim i As Long If Sh.Name = "売り上げ表" Or Sh.Name = "売り上げ内容" Or Sh.Name = "関連業者" Then DefaultSheetName = Array("売り上げ表", "売り上げ内容", "関連業者") For Each mSheet In ThisWorkbook.Worksheets If mSheet.Name Like Sh.Name & "*" Then Sheets(mSheet.Name).Visible = True Else Sheets(mSheet.Name).Visible = False End If Next mSheet For i = 0 To UBound(DefaultSheetName) Sheets(DefaultSheetName(i)).Visible = True Next End If End Sub
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1733/2603)
「売り上げ表」「売り上げ内容」「関連業者」の各シートのコードペインに以下のコードを記載してください。 シートタブを右クリックしてコードの表示があればそれを選択して出た画面 こちらのような画面になりますので(画像にModule1がありますがなくても大丈夫です) http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_040_02.html (画像はModule1を選択していますが売上表などを選択してください) 右クリックにない場合、ALT+F11を押すと同じ画面になりますので 左側のシート名の所をダブルクリックして出たコードペインに記載してください。 Private Sub Worksheet_Activate() Dim mSheet As Worksheet Dim DefaultSheetName As Variant Dim i As Long DefaultSheetName = Array("売り上げ表", "売り上げ内容", "関連業者") For Each mSheet In ThisWorkbook.Worksheets If mSheet.Name Like ActiveSheet.Name & "*" Then Sheets(mSheet.Name).Visible = True Else Sheets(mSheet.Name).Visible = False End If Next mSheet For i = 0 To UBound(DefaultSheetName) Sheets(DefaultSheetName(i)).Visible = True Next End Sub
- kichikuma
- ベストアンサー率18% (202/1080)
既出の回答の通りなんですが、マクロではVBAと言うプログラミング言語を扱います。 プログラミングするためには、物事を正しく捉える必要があると思います。 質問の中に、 『複数シートが30枚程度あります。』 と書いてあったので、プログラミングには向かないと思いました。 これだと、複数シートと言うグループの単位が枚であって、そのグループが30ある。 と言う意味なので、正しく捉えられていないように思いました。 『30枚程度のシートがある。』 で、良いと思うんですけどね。 そもそも他の意味ならばわかりません。 と言う感じで否定的な意見を書けば、天の邪鬼な人がまんま書いてくれると思います。 書いてくれそうになければ、情報を具体的に正確に簡潔に説明すると、回答してもらいやすくなります。
補足
ご指摘の通りです。「30枚程度のシートがある」でした。適切な表現ではなく申し訳ありませんでした。
- yumi0215
- ベストアンサー率30% (1335/4411)
マクロを組んでみてはいかがでしょう。 ご希望の表示方法ができますよ。
お礼
マクロを勉強中ですが,なかなか自分でオリジナルのプログラムを組むまでに至っていないので,全て甘えて申し訳ないのですがコードを教えていただけたら幸いです。
お礼
素晴らしいです!!おかげさまで,自分のやってみたいことができました。とっても助かりました。お世話になりました!!