こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL 指定のフォルダ内にあるエクセルをコピー

どなたかVBAの記述(コード)を教えて下さい。


指定のフォルダ内にあるエクセル(コピー元)を開きコピー、データを順次、指定のエクセル(コピー先)のシートの上から順番に貼付していきたいのです。コピー貼付が終わったら、コピー元のファイルは別のコピー済のフォルダへ移したいです。

フォルダ名は、自分で指定できますが、コピー元のエクセルのファイル名とシート名は一定ではありません。(コピー元ファイルはシート1枚のみ)。セル範囲は、A~F列、行は毎回変動するので、一番下の行を判定する必要があります。

コピー先のファイルは、指定のシート(※)に上から順番に貼り付けをしたいです。
(※セルに入力して指定したいです。)


不足事項などがありましたら、ご指摘いただけると助かります。

よろしくお願いいたします。

なお、簡単な関数のVBAは理解して使えるのですが(IF~ End If、For ~Next 等)、
イベントのプロシージャーなどが今だ理解できず、自分では書くことができません。
そのため。多少コードが長くなってもいいので、イベント・プロシージャーをなるべく使わない書き方のほうが自分で修正することができ、助かります(イベントを使わないと難しい処理でしょうか・・・)。

投稿日時 - 2012-01-29 23:44:14

QNo.7274461

すぐに回答ほしいです

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

ALT+F11を押してVBE画面を開く
挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim myPath as string
 dim newPath as string
 dim myFile as string
 dim mySheetname as string
 dim w as workbook

 mypath = "c:\test\"
 newpath = "c:\test2\"
 mysheetname = thisworkbook.worksheets(1).range("A1").value ’★

 myfile = dir(mypath & "*.xls*")
 do until myfile = ""
 ’ブックを開いてコピーする
  workbooks.open filename:=mypath & myfile
  workbooks(myfile).worksheets(1).range("A1").currentregion.copy _
   destination:=thisworkbook.worksheets(mysheetname).range("A65536").end(xlup).offset(1)

 ’新たな保存場所に保存する
  workbooks(myfile).saveas filename:=newpath & myfile
  workbooks(myfile).close
  kill mypath & myfile

  myfile = dir()
 loop
end sub

ファイルメニューから終了してエクセルに戻る
★:所定のセルに所定のシート名を記入する
ALT+F8を押し,マクロを実行する。




#指摘事項:補足には及びません。自力で解決してください。
ご利用のエクセルのバージョンが不明です。それに伴い,今アナタが操作したいファイルの拡張子も不明です。

ブックを「わざわざ別の場所に移動する」意図が不明です。通常は,所定のフォルダにある全てのブックを回答のマクロのように一括処理すれば,それで終わりです。マクロ終了後,必要なら手動でブックを移動するなりした方がお薦めと言えます。

次々開いてコピーしてきたい「セル範囲の求め方」が不明です。「最後の行が不定」なのは一向に構いませんが,「具体的にそれがどこなのかを,どうやって調べることが出来るのか」が不明ということです。
上述マクロは簡易法で書いてありますが,具体的なアナタのブックの姿に照らし,ご自分で工夫して一度自力で作成してみてください。

投稿日時 - 2012-01-30 00:58:26

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問