• 締切済み

エクセル マクロ 複数ファイルを1枚のファイルに

お世話になります。 私の業務で、多数のエクセルシートを1つのファイルにまとめ、 その上で縦串を通して合算を出す、という作業が頻発しております。 様々な資料で同様の作業が行われますので、簡素化ができればと思い、 質問させていただきます。 [作りたいマクロ] 『元データ』のフォルダに入っているエクセルファイルの 『指定シート(仮にA2セルにシート名を指定できるものとします)』を、 当マクロの入ったエクセルファイルにシートを追加したい。 その際、全てのシート名が同一になってしまうので、 『指定したセル(仮に各シートのB2セル)』をシート名にする。 ●各シートは全て同じフォーマットですので、書式等そのままコピーでOKです ●元のファイル名はバラバラになっていることが多いです

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問の書き方について確認。 >フォルダに入っているエクセルファイル 考えているフォルダは1つか。 そのフォルダの全てのエクセルブック(.xls)を集積の対象としていいのか。 ダメなら除駕する、手がかりは? >その際、全てのシート名が同一になってしまうので、 ブック名は違うが対象シート名は同じということか シートの位置は一番左にある(Indexが1)とかの保証があるのか。 集積後はみんなシート名は違うものにしないとだめだが >指定したセル(仮に各シートのB2セル)』をシート名にする。 とはどういうことかな? 集積されるシートのB2セルに、集約されたときのシート名が 入っているということか?珍奇。 == コード技術のメインは (1)VBSでフォルダのゼンファイルを捉えFor Eachで1つづつ処理対称にする (2)Dir関数でフォルダ内のファイルを捉える どちらかを、WEBで調べてください。 (1)は検索語は「VBS GetFolder) (2)は「Dir VBA} (1)は http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34774&forum=36&start=8&15 の Set Lo_objFileSys_File = CreateObject("Scripting.FileSystemObject") 'フォルダ内の名前取得 Set Lo_objFile_File = Lo_objFileSys_File.GetFolder(objWK_T.Path) 'ファイル名を全部回す For Each objTT in Lo_objFile_File.Files の辺り(これ以外にも沢山記事アリ) == シートのコピーは、マクロの記録で 集約されるブック側で操作をする。 ーー シートタブ部で右クリック 移動またはコピー コピーを作成する 移動先ブック名ー>集約するブック名 ここまでやって、シート名が同じが祟るようなら再質問しては。 前もってシート名をユニークなシート名に替えて操作に入るとかも考え付くが。 ーー 一歩一歩どういうことが必要か(それは手作業でやってみてメモすれば案外わかる)そしてそのためにはどういうコードになるか必要なコードを調べないと。 やりたいことだけ書いて、回答者にやらせるコーナーではないはず。

nobby-frog
質問者

お礼

ご回答ありがとうございます。 途中までマクロを組んでみたのですが、分からないところなど多々あり、 それらを記載せずに質問させていただいた次第でした。 ともあれ、御教授いただいた内容を確認しながら作成したいと思います。

関連するQ&A