複数EXCELを1つに結合する方法

このQ&Aのポイント
  • 昼12:00になったら、2つのExcelファイルを結合する方法を教えてください。
  • Windowsタスクスケジューラーを使用して、2つのExcelファイルを1つに結合する方法を教えてください。
  • Excel2003を使用して、2つのExcelファイルを結合する方法を教えてください。
回答を見る
  • ベストアンサー

複数EXCELを1つにする

お世話になります。 私のPCのWidonwsタスクスケジューラーを使って昼12:00になったら、ファイルサーバー(\\192.168.XXX.XXX)に保管してある"売上(東京).xls"と"売上(名古屋).xls"という2つのExcelファイルを私のPCの\Cドライブ\TEST\配下に"TEST.xls"というファイルを作成して、このファイルに2つのEXCELファイルを結合したいのです。 結合したデータは東京データの後に名古屋データ(出来ましら見出し行A1がない状態で)が張り付いてくれれば最高です。 当初はbatファイルからcopyコマンドの実施を試みましたが、xlsファイルには無効という事で断念しました。VBAでなら実現可能と聞きましたので、どなたか簡単なロジックをご提示いただけますでしょうか? (環境) WindowsXP SP3 Excel2003 よろしくお願い致します。

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

  • ベストアンサー
noname#208392
noname#208392
回答No.1

単なる思い付きですが、こんな風に作ることができます。 まず TESTTemplete.exe というのを作っておきます。ここに二つのファイルを結合するプロシージャをVBAで書きます。 このファイルを毎日12時に開くことになります。 ファイルを開いたときに、自動的に実行するプロシージャを書きます。 開くイベントで自動実行するプロシージャ、というような言い方をするのですが、 Private Sub Workbook_Open() これがそうです。 もう少し詳しく書いてあるサイトへのリンクを貼っておきます。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html あとは普通のプロシージャです。 そのプロシージャで売上(東京)と売上(名古屋)を開いて、特定の場所を TESTTemplete に並べて貼り付けます。 見出しがあるとか、ないとかも、それはコピーする対象範囲をプロシージャに書いておけばいいのです。 あるいは、対象範囲を探してコピーするプロシージャとか。 最後に TESTTemplete を TEST の名前で保存して、TESTTemplete 自体は変更を保存せずに閉じればいいです。 マクロを一緒に保存したくないから、シートを新しいブックにコピーして、それを TEST の名前で保存するほうがいいか。 あなたがVBAにそれほど詳しくないとしても、ファイルをひらいて、コピーして、閉じるなんてことは、マクロの記録で作ってみればいいです。 そのままじゃ使えないかもしれませんが、それを改造するくらいにはVBAのことご存じなんでしょう?

yakkun2338
質問者

お礼

ken-kenさんご連絡ありがとうございます! 細かなご説明ありがとうございます! 考え方について大変勉強になります。 VBAは素人ですがマクロ記録から作成するぐらいであればできます。 ご紹介いただいたサイトを見ながら後程試してみたいと思います。 ありがとうございました。

関連するQ&A

  • バッチで複数の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 時刻起動で複数ブックを1つにまとめる

    お世話になります。 私のデスクトップの[テスト]というフォルダに[東京支店集計.xls]というブックがあります。 [テスト]フォルダの中にさらに[個人別]というフォルダがあり、この中に下記の3つのファイルが置いてあります。 東京支店_田中.xls 東京支店_鈴木.xls 東京支店_山本.xls [やりたいこと] 毎日15:00になったら自動で上記3つのファイルを[東京支店集計.xls]に全データコピー貼り付けして[東京支店集計.xls]にデータを集約したいのです。 [東京支店集計.xls]には毎回全データ上書きしたいのです。 このとき個別の"東京支店_田中.xls"ブックなどは担当者によってフィルターなどがかけられている可能性があるため、集約時にはフィルターを取り除いた形で全データを貼り付けしたいです。 [個人別]フォルダ配下のファイルを集約する時、3つにのファイル名を指定するやり方でもいいですが、ファイルの数が増える場合もありますため、できれば[個人別]フォルダ配下のファイル全てコピー貼り付けする、という動作だと助かります。 私が考えているのは[東京支店集計.xls]にVBAで上記のファイルを集約するコードを作成して、15:00に起動して動かす、という流れなのかと思っております。 初心者のためVBAコードと時刻自動のセットの方法をご教授いただけすと大変助かります。 ★東京支店集計.xlsのファイルパス C:\Users\ユーザー名\Desktop\テスト\東京支店集計.xls ★個人別ファイルのファイルパス C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_田中.xls C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_鈴木.xls C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_山本.xls お手数をおかけしますが、どなたかお知恵をお借りできますでしょうか。 よろしくお願い致します。 環境 Excel2013 Windows7

  • ブックの共有をしているexcelファイルの複製

    ブックの共有を設定しているbook1.xlsというexcelファイルがあります。 ブックの共有を行なっているとだんだんデータサイズが肥大化してくるので、その対策として 【1】"book1.xls"のシート単位で全て新しい"book2.xls"にコピーする。 【2】"book1.xls"を別のフォルダへ移動。 【3】"book2.xls"の名前を"book1.xls"に変え、ブックの共有設定を行う。 ということをしています。 これらの作業を自動で行えたらと思うのですが、 タスクスケジューラー?.batファイル?VBA?など、何をどう組み合わせたらよいのかがよくわかりません。 アドバイスよろしくお願いします。

  • EXCEL ファイル名をセル番地で指定したい

    お世話になります。 下記のような配列数式を使った数式があります。 この数式の"1508"という部分が年月で毎月私が置換で変えています。来月になれば私が手動で1508を1509に置き換えをします。この数式に似た数式が1シートに100個ほどあります。 ={SUM(IF(('\\192.168.XXX.X\共有\東京\2015\上期売上データ\[1508売上表(東京).xls]東京支店'!$A$2:$A$65536=D2)*('\\192.168.XXX.X\共有\東京\2015\上期売上データ\[1508売上表(東京).xls]東京支店'!$I$2:$I$65536=$L$4)*('\\192.168.XXX.X\共有\東京\2015\上期売上データ\[1508売上表(東京).xls]東京支店'!$S$2:$S$65536=1),'\\192.168.XXX.X\共有\東京\2015\上期売上データ\[1508売上表(東京).xls]東京支店'!$R$2:$R$65536,))} (やりたいこと) 上記数式の"1508"年月の部分をA1セルの値を参照するようにして、今後はA1を1509とか1510にすれば数式も変わるようにしたいのです。調べてINDIRECTという関数を使ってみましたが私のやり方が悪いのかどうもうまくいきません。年月は文字扱いにしたいです。 どなかたご教授いただけませんでしょうか。 よろしくお願い致します。 環境 Excel2013

  • EXCEL VBAフォルダ配下のファイル削除したい

    お世話になります。 VBAを使って特定フォルダ(C/TEST)配下のファイルを全て一括削除したいのです。 :特定フォルダ=C/TEST やりたいこと EXCELシートに[削除]というボタンを配置してクリックしたらC/TEST配下のファイルを全て 削除するロジックをどなたかご教授いただけますでしょうか? C/TEST配下にファイルがない場合は[削除対象ファイルは存在しません]というメッセージを出して処理を終えたいです。 よろしくお願い致します。 EXCEL2013

  • エクセル:別々のファイルにあるシートを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!のエラーが出てしまいます。 上記のようなことができるかどうかと、できるならば、やり方を教えてください。 長文ですみません。分かりにくいかもしれませんが、よろしくお願いします。

  • 3つの別々のExcelを1つのExcelに集計

    お世話になります。 現在会社でバラバラで管理されているExcelデータを集計する仕組みを作るように依頼されました。しかし当方VBAは素人なので、どうやってこの依頼を実現したら良いのか全く分からず困っております。 下記に内容を質問させていただきます。 (依頼内容) 下記(1)~(3)の各支店の売上データを1つのExcel(4)に集計したい (使用するデータ) (1)東京.xls 置き場所= \\サーバーIP\東京\東京.xls (2)千葉.xls 置き場所= \\サーバーIP\千葉\千葉.xls (3)大阪.xls 置き場所= \\サーバーIP\大阪\大阪.xls (4)集計.xls 置き場所= 私のデスクトップ 東京、千葉、大阪、の3つのExcelはそれぞれ月毎1~31日までの売上金額が記述されています。3つのExcelのデータの範囲の列はA1~A3固定で同じですが下限はバラバラです。 またこの3つのExcelは同じサーバー上に置いてあります。(パスは異なります) Excelの中身はこのような感じです A1 A2 A3 【日】 【担当者】 【売上金額】 1日 鈴木 100円 2日 田中 1000円 3日 高橋 500円 (やりたいこと) 私のローカルに置いてある上記(4)の集計.xlsを使用して(1)~(3)のExcelのデータを一発で集計したいのです。 例えば集計.xlsの[集計]というボタンを押すと(1)~(3)のExcelの全データを集計.xlsの[[集計結果]というシートにコピペしたいのです。 上記仕組みを実現するためのサンプル等をご教授いただけますと大変嬉しい限りでございます。 自分で出来ないながらもVBAのサンプルも作らずにお聞きするだけで図々しいのは百も承知ですが、会社からは今月中に完成させてくれと言われ、焦っています。どなたか良き方法をご教授いただけませんでしょうか? 環境 Excel2003 Windows XP SP3 サーバーは・・分かりません よろしくお願い致します。

  • ネットワーク上EXCELファイルとローカルEXCEL

    ちょっと困っていますのでどなたか助けていただけないでしょうか。 (何がしたいか) ローカルPCのデスクトップにExcelファイル(A.xls)があります。 ネットワーク上にはEXCELファイル(\\Net\DB\B.xls)があります。 A.xlsのSheet1のA1のセルに12345(企業コード)を入力し検索ボタンを 押すと、B.xlsのファイルをOpenせずにb.xlsの中のA列に保存されている 企業コードデータを検索し、見つかったセルの一つとなりのセルにセット されている売上データ(10000)をA.xlsのB1のセルへ戻す。 こんな処理は可能でしょうか。 (背景) ネットワーク上のb.xlsはDB的に使用します。データ量が多いため EXCEL関数ではどうしても重くなってしまいます。 なんとか、なんとか効率を上げたいので、どうぞお助けください!

  • エクセルでその都度ファイル名を変えてデータを読む

    セルにファイル名を入れるとそのファイルからデータを読むようにしたいのですが。 具体的には、0901.xls、0902.xlsというように日々の売り上げデータを管理していますが共通に使うファイルなのでファイル自体を加工したくありません。そこで別のエクセルfileで、あるセルに「0901.xls」と入れるとfile0901.xlsから所定のデータを読むようにしたいのですが関数ではできないでしょうか? よろしくお願いします。

  • エクセルVBAについて (データのマッチング)

    過去ログで解決できなかったのでここに書かせていただきます。 エクセルのVBで下記のプログラムを作成したいのですがうまくマクロが組めません。 ファイル名:TEST01.xls ファイル名:TEST02.xls があります。 TEST01.xlsにあるA列のデータとTEST02.xlsのA列にあるデータが一致したおり、かつTEST02.xlsのD列のデータが『×』の場合のみ、TEST01.xlsのB列に固定の文字(test)を入力し、TEST01.xlsのC列に入力されているデータを削除するプログラムを作りたいです。 ご存知の方がいらっしゃれば、ご教授よろしくお願い致します。

専門家に質問してみよう