オンライン健康相談、gooドクター

現在、仕事の売上げ表を作っているのですが、シートが増えましたので、シートをフォルダ化できないか質問です。

現状「売上げ1月」「支出1月」「人件費1月」……と12ヶ月分のシート36枚あります。これを「売上げ」「支出」「人件費」の三つのメインシートに対して、そのシートをクリックすると、「1月」「2月」……と12ヶ月分のシートが表示されればと思います。

少々わかりにく文章ではありますが、上記のように表示できる方法はありませんか?よろしくお願いします。

gooドクター

A 回答 (3件)

こんばんは。



やりたい方法と違いますが、こんな方法は同でしょうか?
現状のシートにメインシートを追加し、メインシートをクリックすると
そのシートに関連したシートのみ表示します。
(「売上げ」をクリックすると「売上げ1月」「売上げ2月」…を表示)

※メインシートと表示シートの関連は、"売上げ"がシート名に含まれるか否かで表示/非表示を識別します。
(ついでに、シート名に色付けもしています。)

「売上げ1月」「支出1月」「人件費1月」……と12ヶ月分のシート36枚のブックに「売上げ」「支出」「人件費」のシートを追加します。

「ツール」-「マクロ」-「Visual Basic Editor」を選択し、
「売上げ」、「支出」、「人件費」の各シートのマクロとして
Private Sub Worksheet_Activate()
Call ActiveSheet(Me.Name)
End Sub
を記入します。

Visual Basic Editor の「挿入」-「標準モジュール」を選択します。
Module1が追加されるので、Module1に以下を記入します。
Sub ActiveSheet(ByVal sheetName As String)
Dim st As Worksheet
For Each st In ActiveWorkbook.Sheets
If st.Name = "売上げ" Or _
st.Name = "支出" Or _
st.Name = "人件費" Then
st.Visible = True
Else
If InStr(st.Name, sheetName) >= 1 Then
'sheetName を含むWorksheetを表示する
st.Visible = True
st.Tab.ColorIndex = 38 '色付け
Else
'上記以外は非表示
st.Visible = False
End If
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
上記を試してみたところ、とても便利ですね。
上記の内容を参考に表作りを進めていきたいです。

質問なのですが、メインシート(表示シートも12ヶ月分)を一つ増やす場合、Module1に加えるコードを教えてほしいです。
================================
If st.Name = "売上げ" Or _
st.Name = "支出" Or _
st.Name = "人件費" Then
st.Visible = True
================================
に対して、
================================
If st.Name = "売上げ" Or _
st.Name = "支出" Or _
st.Name = "新規メインシート" Or _
st.Name = "人件費" Then
st.Visible = True
================================
でよろしいのでしょうか?
お手数ですが、お時間がある時にでもご回答頂けたらと思います。

今回はありがとうございました。

お礼日時:2007/05/09 17:29

#No2です。



質問の回答です。
ご指摘の通りで問題ないです。

メインシートと表示シートは、メインシートのシート名を
含んでいる事で関連付けしています。

================================
If st.Name = "売上げ" Or _
st.Name = "支出" Or _
st.Name = "新規メインシート" Or _
st.Name = "人件費" Then
st.Visible = True
================================

"新規メインシート"のマクロ(Worksheet_Activateイベント)記述もお忘れなく。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。
また何かありましたら、よろしくお願い致します。

お礼日時:2007/05/11 20:07

フォルダ化ではないのですが、


目次シートを作ってハイパーリンクを使うのはどうでしょう。

参考URL:http://okwave.jp/qa2982730.html
    • good
    • 0
この回答へのお礼

とても参考になりました。
応用してみます。

ありがとうございました。

お礼日時:2007/05/09 17:15

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング