• 締切済み

エクセル:別々のファイルにあるシートを1つのファイルでリアルタイムに管理したい

バージョンはエクセル2000です。 北海道.xls、東北.xls、名古屋.xls、大阪.xls、広島.xls、九州.xlsという7つの支店のエクセルファイルがあり、 北海道.xlsには「sheet北海道」 東北.xlsには「sheet東北」 東京.xlsには「sheet東京」 名古屋.xlsには「sheet名古屋」 大阪.xlsには「sheet大阪」 広島.xlsには「sheet広島」 九州.xlsには「sheet九州」 が入っています。(1番左のシートを使っています。) ファイルは共有フォルダに置き、各支店の担当者が各々の支店ファイルに不定期で新規案件情報(1案件につ1行)を書き込んでいきます。 今、新しく 全国.xls というファイルをつくり、 そこに「sheet北海道」、「sheet東北」、「sheet東京」、「sheet名古屋」、「sheet大阪」、「sheet広島」、「sheet九州」と7つのシートを持ってきて、 全支店の管理を行う立場の方々が、全国.xlsを開くと各支店ファイルのその時点での状況が反映されているようにしたいです。 過去の質問を見て、シートを1つのファイルに集める(ブックの結合?)機能があることが分かり、過去の質問に載っていたマクロをコピーして使ってみたのですが、1回目はうまくいくのですが、2回目以降は前回の結合により作成された古い時点でのシートが残るので、消さなければならないのがネックです。(自動的に消す方法もあるのでしょうか?) また、セルを1つ1つ参照させて作ってみたのですが、各支店のファイルの方で、行の削除や挿入を行うため、参照のリンクが切れて#REF!のエラーが出てしまいます。 上記のようなことができるかどうかと、できるならば、やり方を教えてください。 長文ですみません。分かりにくいかもしれませんが、よろしくお願いします。

  • jozue
  • お礼率46% (12/26)

みんなの回答

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 取り込みたいデータの仕様にもよりますが(データベース仕様がベター) [外部データの取り込み]機能を試してみてはいかがでしょう。 http://office.microsoft.com/ja-jp/excel/HP052005411041.aspx http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter2.htm また、VBAを使うにしても、難しく考えず、 全国.xlsに各シートを作っておいて、(削除ではなくセル範囲のコピーでいいのでは?) 最初のBookを開く ↓ 目的のシートを選択 ↓ 全セル範囲選択 ↓ 全国.xls選択 ↓ 貼り付け先シート選択・貼り付け ↓ 最初のBookを選択・閉じる ↓ 次のBookを開く。 という手順を[マクロの記録]録れば、それなりに処理できるはずです。 Sub Macro1()      ChDir "D:\test"   Workbooks.Open Filename:="D:\test\北海道.xls"   Sheets("Sheet北海道").Select   Cells.Select   Selection.Copy   Windows("全国.xls").Activate   Sheets("Sheet北海道").Select   Range("A1").Select   ActiveSheet.Paste   Application.CutCopyMode = False   Windows("北海道.xls").Activate   ActiveWindow.Close   ': End Sub これをBookOpen時に動くように体裁を整えて Sub auto_open()   Const path As String = "\\192.168.1.1\office\" '目的のフォルダ   Dim v As Variant   Dim vi As Variant   Application.ScreenUpdating = False '画面更新制御   'Loop基準の文字列を配列で作成し、繰り返し処理する   v = Array("北海道", "東北", "東京", "名古屋", "大阪", "広島", "九州")   For Each vi In v     With Workbooks.Open(Filename:=path & vi & ".xls", ReadOnly:=True)       .Sheets("sheet" & vi).Cells.Copy ThisWorkbook.Sheets("sheet" & vi).Cells(1)       .Close savechanges:=False     End With   Next vi   Application.ScreenUpdating = True End Sub こんな感じにすれば良いかと思います。

関連するQ&A

  • 入試難易度について

    代ゼミのデータから取ってきた、文系学部(文・法・経済)の合格者平均得点率です(センター試験) 2013年度入試 文系学部合格者平均 http://www.yozemi.ac.jp/bunpu/center/kokkoritsu/index.html ○文学部 東京大 88.3 京都大 87.4 大阪大 82.3 名古屋 81.8 神戸大 81.8 東北大 79.2 北海道 78.7 九州大 78.2 広島大 74.9 ○法学部 東京大 90.3 京都大 87.1 一橋大 84.2 大阪大 84.0 神戸大 81.2 九州大 80.3 名古屋 80.1 北海道 79.0 東北大 78.8 広島大 77.8 ○経済学部 東京大 89.3 京都大 85.6 一橋大 82.6 大阪大 82.6 神戸大 79.8 九州大 79.7 名古屋 79.1 東北大 77.5 北海道 76.9 広島大 72.6 ○3学部平均 東京大 89.3 京都大 86.7 一橋大 83.4 大阪大 83.0 神戸大 80.9 名古屋 80.3 九州大 79.4 東北大 78.5 北海道 78.2 広島大 75.1 一橋大は落ち目なのでしょうか? また、九大や東北大や名古屋はもっと難しいと思っていましたが、旧帝ではない神戸が頑張っています。 旧帝というブランドは薄くなっているのでしょうか? それなら尚更一橋にはもっと頑張ってほしいです。 どう思われますか?

  • VBAでたくさんのファイルを一つにまとめる

    いつもお世話になっています。VBAでファイルを順番に起動、処理を行いたいと思っています。 集計001.xls~集計100.xlsというファイルがあります。1ファイルにそれぞれの支店と数値があって、それを総合.xlsファイルに支店シートを作って貼り付けます。 つまり、集計001.xlsには 東京 大阪 福岡 100 100  100 200 300  500 100 400  600 400 500  100 とあり他ファイルも同じように入っています。(数値は適当です) それを総合.xlsでは東京シートに 集計001 集計002 集計003 100   400   500  200   300   400 100   400   300 400   200   400 と各支店にシートを貼付します。他に大阪シートや福岡シートもできます。 今、「総合.xlsの各支店シート作成」と「集計001.xlsの支店数値→総合ファイル支店シート貼付」はできています。即興で作ったのでかなりいい加減ですが。 問題は「数あるファイルを順番に開いては閉じること」と「ファイル名を取得して各列の1行目にその名前を代入」です。 総合.xlsは常に起動していますが、集計ファイルは途中なかったりします。 そのために、いちいち手動で集計ファイルを起動して、コピペマクロを動かし、手動で集計ファイルを閉じています。 かなりわかりにくい説明だとは思いますが(やっている私もたまに勘違いしています)、ファイルを順番に動かすいい方法ってないでしょうか?できれば001 → 100の順番でいきたいんです。手動だとある時順番を間違えそうだし、ファイル名を1行目に入力するのも面倒なので。 すごくわかりにくいですよね。どうやったら文字列のファイル名をカウントする感じで動かしていくのかわからなくて・・・。どうかお知恵を貸してください。よろしくお願いします。

  • エクセルで1つのシートを拠点別に複数のシートに分けたい

    お世話になっております。 明日慣れないエクセルでデータ処理をすることになりました。 数式を入れたりいろいろ試してみましたがうまくいきません。 ご教示どうかお願い致します。 Sheet1に電話番号と支店がランダムに入力されたデータが100行ほどあります。    A       B 1 携帯電話番号  支店名 2 080-1234-5678 大阪支店 3 080-2345-6789 東京支店 4 080-3456-7890 名古屋支店 ...... ...... 以上のデータを大阪支店シート、東京支店シートと支店別にシート分けしたいと思っています。 初歩的なことかと思いますが、抽出方法を教えてください。 よろしくお願い致します。

  • Excelのファイルをまたいだシート参照について

    Excelのファイルをまたいだシート参照について AというファイルのシートaがbのA1を参照しているとき、Bというファイル(同じシートbを作成済) に貼り付けると、aの参照はAのファイルの別シートから参照(=[A.xls]b!A1)をするようになって しまうのですが、これをBのシート(同じ名前,b!A1)のなかで参照をするようにコピーする方法を教えてください。

  • エクセルシートの並べ替えについて

    ひとつのエクセルブックに複数のワークシートがあって、それぞれのシートの見出し(デフォルトでsheet1とか2とか入っているところです)に名前をつけています。(例)東京支店、名古屋支店、大阪支店...等 今、シートの順番が作成順なのですが、これをシートの見出しの文字から、一発で昇順や降順に並べ替える方法はありますか? 参考書によると手作業では1枚ずつシートの順番の並べ替えができるようですが、シート枚数が多いためお尋ねしています。 よろしくお願いしします。

  • バッチで複数のExcelファイルを1つに結合したい

    お世話になります。 私のPCのWidonwsタスクスケジューラーを使って昼12:00になったら、ファイルサーバー(\\192.168.XXX.XXX)に保管してある"売上(東京).xls"と"売上(名古屋).xls"という2つのExcelファイルを私のPCの\Cドライブ\TEST\配下に"TEST.xls"というファイルを作成して、このファイルに2つのEXCELファイルを結合(上書き)したいのです。 下記のコードを記述しましたところ、TEST.xlsは作成されましたが、中身が壊れて開けません。 何がいけないのかご教授いただけませんでしょうか? (環境) WindowsXP SP3 Excel2003 以下、私が書いたコード ========================================== @echo off echo ファイルを結合します。 copy \\192.168.XXX.XXX\営業\東京\売上(東京).xls + \\192.168.XXX.XXX\営業\名古屋\売上(名古屋).xls C:\TEST\ファイル\TEST.xls /Y echo 終了しました。 ==========================================

  • 旧帝大等 薬学部の偏差値について

    東京、京都を除く旧帝大(北海道、東北、名古屋、大阪、九州)と 千葉、岡山、広島、熊本、慶応の 薬学部の偏差値を高い順に並べていただけませんか。 また、その他大学で、上位に入りそうな大学があったら教えてください。

  • Excel エクセル

    Excel エクセル [シート1]の、D列に複数の支店名(東京支店、名古屋支店・・・)が入力されています。 同一の支店名も複数あります。 1.支店名のシートを自動的に作成 ex.[東京支店]シート、[名古屋支店]シート ・・・ 2.[シート1]D列の同一支店名の行を該当のシートに書き込み と言う様な事は可能でしょうか?。 マクロ初心者で調べられる限りでトライはしてみましたが、どうしても出来ません。 ご教授のほど よろしくお願いいたします。 ex. [シート1] 列  A  B   C   D   ああ  い   う   東京支店   か   きき  くく  名古屋支店   ささ  し   すす  名古屋支店   た   ちち  つつ  東京支店      ↓ [東京支店]シート ああ い う 東京支店 た ちち つつ 東京支店 [名古屋支店]シート か きき くく 名古屋支店 ささ し すす 名古屋支店 毎月作成されるデータをエクセルを知らない初心者が対応するため、 どうしてもマクロで作成したボタンを押すだけで自動的に処理できるようにしたいのです。

  • Excel 複数のワークシートの統計について

    Windows97を使用してます。 Excelで統計を出したいのですが、至急ご回答くだい。 データベースは以下の通りです。 ・それぞれのワークシートは北海道、東北、関東、近畿、関西、九州です。 ・各ワークシートには、事業所ごとの月別合計が算出されています。  (列に事業所、行に月別合計です。) 出したい統計について ・全国の月別合計を、各事業所ごとにワークシートを作成したい。 (列に北海道、東北、関東、近畿、関西、九州、行は月別合計です。) ご理解いただけましたでしょうか。 至急ご回答いただきたいと思います。 よろしくお願い致します。

  • 複数シートの内容を1つのシートに集計するVBA

    お世話になります。 ExcelのVBAについて質問させていただきます。 集計.xlsというブックがあります。 この中に[集計]、[東京支店]、[名古屋支店]、[大阪支店]というシートがあります。 やりたい事は[東京支店]、[名古屋支店]、[大阪支店]のシート内容を[集計]シートに順番にコピペしていきたいのです。 下記のVBAを組んでみましたがうまくいきません。 [東京支店]はうまくコピペ出来ますが、[名古屋支店]がコピペされず、[大阪支店]はコピペされますが東京支店のデータのすぐ下ではなく、50行ぐらい下の位置にコピペされてしまいます。 各支店のシートの内容は次の通りです。この内容を[集計]シートにコピペしたいのです。 [日付] [担当者] [金額] 11/1 田中 100円 11/2 山田 500円 どなたかご教授いただけますでしょうか? 環境 Windows XP SP3 Excel2003 ****VBA**** Sub test() Dim 下 As Integer '東京支店 Sheets("東京支店").Select Range("A2").Select '東京支店シートの見出し以外の全データをコピー Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy '集計シートに貼り付け Sheets("集計").Select Range("A2").Select ActiveSheet.Paste '次は名古屋支店 Sheets("名古屋支店").Select Range("A2").Select '名古屋支店シートの見出し以外の全データをコピー Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy '集計シートの最下行を取得 Sheets("集計").Select 下 = Range("A1").CurrentRegion.Rows.Count + 1 '集計シートに貼り付け Range("A2").Select ActiveCell.Offset(下 & "," & 0).Select ActiveSheet.Paste '最後に大阪支店 Sheets("大阪支店").Select Range("A2").Select '大阪支店シートの見出し以外の全データをコピー Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy '集計シートの最下行を取得 Sheets("集計").Select 下 = Range("A1").CurrentRegion.Rows.Count + 1 '集計シートに貼り付け Range("A2").Select ActiveCell.Offset(下 & "," & 0).Select ActiveSheet.Paste End Sub

専門家に質問してみよう