• ベストアンサー

エクセルで複数のシートをフォルダ化したい

現在、仕事の売上げ表を作っているのですが、シートが増えましたので、シートをフォルダ化できないか質問です。 現状「売上げ1月」「支出1月」「人件費1月」……と12ヶ月分のシート36枚あります。これを「売上げ」「支出」「人件費」の三つのメインシートに対して、そのシートをクリックすると、「1月」「2月」……と12ヶ月分のシートが表示されればと思います。 少々わかりにく文章ではありますが、上記のように表示できる方法はありませんか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.2

こんばんは。 やりたい方法と違いますが、こんな方法は同でしょうか? 現状のシートにメインシートを追加し、メインシートをクリックすると そのシートに関連したシートのみ表示します。 (「売上げ」をクリックすると「売上げ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

daicestyle
質問者

お礼

ご回答ありがとうございます。 上記を試してみたところ、とても便利ですね。 上記の内容を参考に表作りを進めていきたいです。 質問なのですが、メインシート(表示シートも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 ================================ でよろしいのでしょうか? お手数ですが、お時間がある時にでもご回答頂けたらと思います。 今回はありがとうございました。

その他の回答 (2)

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.3

#No2です。 質問の回答です。 ご指摘の通りで問題ないです。 メインシートと表示シートは、メインシートのシート名を 含んでいる事で関連付けしています。 ================================ If st.Name = "売上げ" Or _ st.Name = "支出" Or _ st.Name = "新規メインシート" Or _ st.Name = "人件費" Then st.Visible = True ================================ "新規メインシート"のマクロ(Worksheet_Activateイベント)記述もお忘れなく。

daicestyle
質問者

お礼

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

noname#97729
noname#97729
回答No.1

フォルダ化ではないのですが、 目次シートを作ってハイパーリンクを使うのはどうでしょう。

参考URL:
http://okwave.jp/qa2982730.html
daicestyle
質問者

お礼

とても参考になりました。 応用してみます。 ありがとうございました。

関連するQ&A

  • エクセル 複数シート まとめる

    過去の質問で似たような内容はあったのですが、印象が違ったのでここで改めて質問させていただきます。 複数シートが30枚程度あります。 例えば、売上表4月…売上表12月,売り上げ内容4月…売り上げ内容12月,関連業者1…関連業者12といった具合です。 これらのシートを全て表示させておくと,選択するために時間がかかり,また,選択すべきシートを間違えて入力する人も多いので,なんとか簡素化したいと考えています。 表紙のシートを作成し,ハイパーリンクを貼ることも考えたのですが,各シートはすでにいろいろ作り込んで完成しており,表紙に戻るハイパーリンクを各シートに貼る共通セルのスペースもない状態です。 例えば,シートの「売り上げ表」を選んだら,売り上げ表4月~12月までのシートだけを表示させたり,「売り上げ内容」を選んだら,売り上げ内容4月~12月までのシートだけを表示させたりすることなどは可能でしょうか? イメージとしては,「売り上げ表」「売り上げ内容」「関連業者」のメインシートの3枚のみが表示されてあり,それらのシートを選択すると,「売り上げ表4月~12月」が表示されたり,「売り上げ内容4月~12月」が表示されたりし,他のシート(メインシートと表示されているシート)以外は非表示になっている…といったようなものです。 ご教授いただけると嬉しいです。

  • エクセル。複数のシートを使っての複雑な集計のやり方

    エクセル。複数のシートを使っての複雑な集計のやり方を教えていただきたいです。 縦は上から150期から155期まで、横は4月から3月まで(12カ月)でそれぞれ売り上げ額が入っています。 その下には各月の粗利益%が入っています。このような表が入った計10シートが同じファイル内にあることとします。 この10シートの集計をしたいのです。 私はよくわからなくって、すべてひとつひとつシートを選んではクリックしながらとても長い数式を入れていました。これでもできたのですが、 いろいろネットで調べたら、サム関数を使ってシートを一気に選択して(コントロールを押しながらシートを選択して)コピー出来る事を知りました。 それはなんとなくわかったのですが、売り上げの下にある、「粗利益〇%」の集計もしたいのですが、いまいち簡単なやり方がわかりません。 粗利益の合計を出すには→各月の売り上げ×その月の粗利益を、売り上げで割ると出るので、 それを地道に、たとえば155期4月の粗利益の集計を出す場合は、(1)シートの4月の売り上げ×粗利益+(2)シートの4月の売り上げ×粗利益+・・・(とこれが10シート続きます)これを、(1)シートの4月売上+(2)シートの4月売上+・・・で割るという数式になります。 10シートなので、相当長い数式になってしまいます。 これができたら他にひとつひとつコピーしていくというかんじでした。 上記のようなサム関数などでシートをまとめて集計するようなやり方ってないのでしょうか? 掛けたものを足してそれをまた割ってという場合は、簡単に集計するのは難しいのでしょうか? もっと簡単なやり方があったら教えていただきたいです。 わかりにくくすみませんが、わかる方、教えていただきたいです。

  • エクセルで複数のシートにまたがるデータを一枚にまとめる方法

    よろしくお願いします。 エクセルのシートが3シートあり、 シート1、シート2には従業員の名前、出勤日、売上高が一覧になっています。シート1、2の違いは月別となっています。 簡単に表にすると a,b,cという従業員がいた場合、 A列 B列 C列 a 4/1 3000 b 4/1 2000 a 4/2 4000 c 4/2 5000 b 4/3 2000 といったイメージなのですが・・・ それを今はそれぞれ月ごとに 人別にオートフィルターで検索し シート3に貼り付け人別の売上表にまとめています。 この場合だとシート1が4月シート2が5月の売上表だった場合、 シート3にaさんの4月5月の売上を一覧表にしています。 例では3人ですが、実際は人数が20人ほどいて、月別のシートも今後増えていきます。 シート3に検索条件aと入力したら シート2、3からVLOOKで値が抽出できるかとも試してみたのですが、 VLOOKは一番最上段のデータのみを抽出してしまうので断念しました。 今後の作業の効率化を考えると少しでも省略化したことを行いたいのですが・・・ なにかよいアドバイスがありましたらいただけると幸いです。

  • EXCELで複数のシートの日々の累計

    初めて投稿いたします。 とても困っているので、どうぞ宜しく御願いします。 エクセル2000で、1つのBOOKに一ヶ月分の日報のシートを作成しました。 各シート名は、6月1日、6月2日、6月3日~6月30日となっています。 例えば、 この6月2日のシートのC1に6月2日の売り上げを手入力すると、このシートの E1に前日(6月1日)の売り上げ(6月1日シートのC1)+今日(6月2日)の売り上げ =累計が計算されるようにしたいのです。 月によって、営業日数が違うので、もう一枚シートを作成して、そのシートのA列に 営業日数分のシート名(6月1日、6月2日・・・)を縦に羅列し、それを読んでその名前のシートの売り上げ(C1)を読んで、当日の売り上げと累計していきたいのです。 初日は、当日の売り上げが累計値となり、 2日目は、1日目+2日目の値 3日目は、1日目+2日目+3日目の値となるようにしたいのです。 似たような質問をされているのを探して、いろいろと試してみましたが、 関数もVLOOKUPやIF等の簡単なものした使用したことがなく、うまくいかないのです。 どうか、詳しく教えていただけると、助かります。 宜しく御願いします。

  • 【エクセル】複数シートの同一セルの内容を別のシートに自動反映させたい

    エクセルについて教えてください。エクセル初心者なので、説明がうまくできないのですが、やりたいことを汲み取っていただけると助かります。 現在複数シートのシートの同一セル上に数字が記入されています。 新たに別シートを作成し、その表に数字が自動入力されるように したいのですが、何か方法はありますでしょうか。 例)(1)シート1~12のA10セルに4月-3月までの支出合計が    記入されている。   (2)別シートに縦罫4月-3月、横罫支出合計とした表を作成。   この表に月ごとの支出合計が自動的に反映されるように   したいのですが、今はセル一つずつに"=シート1のセルA10"を   入力しています。   この方法以外に便利な方法があったら教えてください。   説明下手で申し訳ございませんが、宜しくお願い致します。

  • エクセル2003でのSheet計算・・・・?

    今、売り上げをエクセルで表にして計算しているのですが、 例えば、Sheet1で10月分の明細を入力し、Sheet2でSheet1での合計値を用いて、 Sheet2で反映するといったことは可能でしょうか? 知っている方は、困っているのでぜひ教えてください。

  • エクセルの挿入シート 1枚をコピーする場合・・

    資料つくりしています。 (1) エクセルで 1つのファイルの中で たくさんのシートを使い作っています。 その中で 1つのシートのみをコピーしたい場合の方法を教えてください。 現状 ファイルごと コピーして いらないシートを消していく方法を しています。お願いします (2) 月間の売り上げなどの表作成において 毎月同じシートで 売上げ高を記入する場合 1月から 12月までの同じパターンの表を シート順に重ねて作りたいのですが  現状 1枚ずつコピーしています 同じ計算式のシートを 月別で12枚作成したいときの方法を教えてください また わかりやすい説明があるサイトご存知でしたら 教えてください  お願いします

  • エクセル:複数シートをまとめた集計方法

    店の売上管理のために以下のような表があります。 ・月ごとにシートを分けて集計(1月~12月のシート) ・各シートは、4列でそれぞれの列は、「都道府県名」「地区名」「店名」「売上」で構成。各店は「都道府県名」「地区名」「店名」の3つの情報で特定 ・行数(店数)は各月でまちまち(売上があった店のみ記載のため)ですが、数千以上は存在 ※従って地道にコピーして重複を消してという作業は非効率になってしまう。。 上記表の集計を1つのシートで次のようにまとめたいと考えています。 ・15列構成。(内訳は「都道府県名」「地区名」「店名」「1月の売上」~「12月の売上」) ・重複した行が無い。例えば1月、4月、12月と売上があった店も1行で管理したい。 以下のような手順を考えましたが、良い手順が思いつきません。そもそも実現可能かもわかっておりません。 他の方法も含めて良い案があれば教えてください。お願いします。 手順1:1月度のシートの「都道府県名」「地区名」「店名」をコピー 手順2:2月以降のシートに関しては、それ以前の月のシートには登場していない「都道府県名」「地区名」「店名」のみ追加でコピー 手順3:IFやVLOOKUP関数などを駆使して、各店舗毎の月間売上を各月のシートの売上値を参照して代入??

  • accessからexcelへのエクスポート時のシート

    access2002 excel2002 現在accessのクロス集計クエリで各店舗の損益表を作成しフォームからの出力指示でexcelにエクスポートしています。店舗番号を抽出条件にして1店舗ずつ出力しています。 これを店舗番号を指定せずクエリを実行し全店舗分の損益データを店舗ごとのシートに出力するようにしたいのですが、そんなことはできないでしょうか。 店舗,項目 ,8/1 ,8/2 ,8/3 ... 0001,売上 ,10000,12000,13000 0001,原価 , 5000, 5000. 6900 0001,人件費, 4000, 4500, 5000 0002,売上 ,20000,21000,19000 0002,原価 , 9000, 8900. 9000 0002,人件費, 6000, 7000, 6000 上記クエリ結果を シート0001に 店舗,項目 ,8/1 ,8/2 ,8/3 ... 0001,売上 ,10000,12000,13000 0001,原価 , 5000, 5000. 6900 0001,人件費, 4000, 4500, 5000 シート0002に 店舗,項目 ,8/1 ,8/2 ,8/3 ... 0002,売上 ,20000,21000,19000 0002,原価 , 9000, 8900. 9000 0002,人件費, 6000, 7000, 6000 店舗ごとにクエリを作成すればできるような気がするのですが、店舗数が50以上あるのでどうにかひとつのクエリでできないものか考えたのですがどうしても分かりませんでした。 どなたかご存知の方がいらっしゃいましたらご教授願います。

  • エクセルでデータが別シートに反映されない

    パソコン、素人です。 今、エクセルのデータで事業の収支をデータでまとめております。 各月を各シートに記入していこうと思っております。 そして、各シートの「売上合計」の「支出合計」のみをグラフのシートに飛ばし、年間のグラフにしようと思っています。 1、グラフのシートの4月の売上のセルにて「SHIFT」「=」キー 2、4月の収支シートの売上合計のセルにで「ENTER」キー でOKだと思うのですが、「#VALUE!」が表示されてしまいます。 ですが、同じグラフのシートでも同じ1,2の手順で表示されるセルもあります。(同じように「#VALUE!」が表示される場合もあります。) 教えていただけませんでしょうか? 宜しくお願いします。

専門家に質問してみよう