• ベストアンサー

VBAで、同一フォルダの複数ファイルに対し「backup」フォルダを同

VBAで、同一フォルダの複数ファイルに対し「backup」フォルダを同じディレクトリに作成した上で、全ファイルをそこへコピーするソースを教えていただけますでしょうか?

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

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

こんばんは。 一例です。 Sub test()   Dim myFolderName As String   Dim myFolderCheck As String   Dim myFileName As String   myFolderName = "backup"      myFolderCheck = Dir(ThisWorkbook.Path & "\" & myFolderName, vbDirectory)   If myFolderCheck = "" Then     MkDir ThisWorkbook.Path & "\" & myFolderName   End If      myFileName = Dir(ThisWorkbook.Path & "\*.*", vbNormal)   Do Until myFileName = ""     If myFileName <> ThisWorkbook.Name Then       FileCopy myFileName, myFolderName & "\" & myFileName     End If     myFileName = Dir()   Loop End Sub

その他の回答 (1)

  • quicon9ue
  • ベストアンサー率31% (6/19)
回答No.1

Set fso = CreateObject("Scripting.FileSystemObject") If fso.FolderExists(".\backup") = False Then fso.CreateFolder (".\backup") End If For Each afile In fso.GetFolder(".").Files fso.CopyFile afile.Path, fso.GetParentFolderName(afile) & "\backup\" Next ご要望はこんな感じでしょうか? メモ帳にはりつけて、拡張子vbsで同じフォルダに保存し、実行してください。 Excel等のVBAでやるなら、ThisWorkBook.Pathとかに書き換えて、絶対パスにしてください。"."は使えません。

関連するQ&A

  • VBAで複数のフォルダから最新のファイルを検索してコピーするには?

    はじめましてこんにちは!エクセルを少しいじり始めた者です。 エクセルのVBAで複数のフォルダから最新更新日のファイルを検索して特定シートのセルD1からF20までをコピーして貼り付けるにはどのようにコードを書いたらいいのでしょうか?具体的に申し上げますと、ある特定のフォルダの中に複数のフォルダが入っており、複数のフォルダにはそれぞれ同じ名前の後に日付が入っていて、さらにその中には同じファイル名の後に日付が付いているファイルがあります。(「日本」フォルダの中に「日本200401」、「日本200402」、「日本200403」フォルダが入っていてさらにそれぞれのフォルダ内には「全国200401」」、「全国200402」、「全国200403」みたいな感じでフォルダ名と同じ日付が付いたファイルが入っています。) その複数のフォルダの中から最新更新日時のファイルだけを開いて特定のシートからデータをコピーして貼り付けるにはどのようにコードを記述したら良いのでしょうか?

  • (VBA)フォルダの中の複数のテキストファイルをエクセルに取り込みたい

    フォルダの中に複数のテキストファイルがあります。 それをVBAで1シートに1テキストファイルづつで取り込んで(区切り文字(#)、列のデータ形式(文字列)を指定して)作成済みのマクロを実行し、出力させたいのですが。。 データが大きいので5シートで1つのファイルにしたいです。フォルダの中にはテキストファイルが100ほどあるので、結果、エクセルファイルが20できればいいのですが。。 できればデスクトップに新しいフォルダが作成されてその中に出力されていくようにしたいです。 お力を貸してください。よろしくお願いします。

  • 複数フォルダ内のファイル群をひとつに纏める

    Excel2003のVBA で、以下の作業を行いたいので宜しくご教示下さい。   サーバー上や自分のPC上にある、任意フォルダA直下には、   複数のフォルダがあり、その複数フォルダ内に多数のファイル(約3万個)が入っている。   そのファイル群を、任意フォルダAの直下に新しいフォルダを1つ作り、全てコピーし纏めたい。   当方の構想(希望)としては、   1.エクセルシート1に全ファイル名を書きだす。(行:フォルダ名、列:ファイル名)   2.同名ファイルの有無を判定し、有ればエクセルシート2にフォルダ名とファイル名を抽出する。     (同名ファイルは、エクセルシート2を確認し、手動で変更する)   3.同名ファイルが無ければ、新しいフォルダに全てコピーする。 コードを記載しご教示頂ければ助かります。 皆様よろしくお願い致します。

  • VBAフォルダやファイル操作について

    VBA初めての初心者です。 VBAのフォルダとファイル操作関連の質問です。(初心者です) 【やりたいこと】 画面から、 入力フォルダのパスを入力する・・・(1) 出力フォルダのパスとファイル名を入力する・・・(2) ・処理概要 入力されたフォルダ内のファイルを順次読み込み、 リネームして、出力フォルダに追加出力する。 (1)フォルダ内全ファイルを出力して終了する。 追加処理として、 (1)を複数入力できるようにしたいと思います。 ・詳細処理 出力フォルダのファイルネームは、連番であり、 画面での入力(2)ファイル名から連番したファイル名(+1していく) 出力するデータ内容は(1)のコピーのままでよい。 入力されたフォルダ内の全てのファイルを実行して終了する。 このようなプログラムなのですが、 初心者で、 わかりません。 思うようにコーディングしても 動きません???? どのように コーディングすればいいですか?

  • ACCESS VBAからのファイル削除

    毎月作成される複数ファイルを該当月フォルダ配下に複数フォルダを作成しコピーして整理しています。 ACCESS VBAで自動で作成しようと思いますが、処理開始前に該当フォルダが存在すれば全て削除して、当初状態にしたいのですが、該当月フォルダ(最上位のフォルダ)を指定して一括削除する方法は無いでしょうか?

  • 複数のフォルダから部分一致するファイルを抜きだす

    お世話になります。 複数のフォルダの中に番号がつけられたjpegデータがいくつか入っています。 aフォルダ 124_1.jpeg 124_2.jpeg 124_3.jpeg 125_1.jpeg 125_2.jpeg 125_3.jpeg bフォルダ 126_1.jpeg 126_2.jpeg 126_3.jpeg 127_1.jpeg 127_2.jpeg 127_3.jpeg それらの中から、特定の複数の番号のファイルのみコピーして1つのフォルダ(copyという名前)に効率よくまとめるにはどうしたらよいでしょうか? 具体的には上のような複数のフォルダから 124を含むファイル3つと126を含むファイル3つをコピーして1つにまとめたいです。 よろしくお願いいたします。

  • VBAで複数ファイルからのデータ抽出を行いたい。

    すみません、知恵をお貸しください。 VBA初心者です。 一つの同じフォルダ内にあるエクセルの同じ形式の複数ファイル(*.xls)から、データを抽出し(例.A2:k2)一つのファイルを作成したいのですが、どうにか一行目だけを抽出することができました。 しかし、データ抽出をしたい複数ファイルの中には(A2:k2)だけではなく、複数行に渡りデータが入っているもの(A3:k3まで、やA5:k5までなど)があり、それら全てを抽出したいのです。 何らかの条件付けの上でループをさせればいいのかな?とも考えたのですが、うまくいきません。 どうかご教授お願いします。

  • VBA_フォルダ内複数のExcelファイルの集約

    Excel VBAに関する質問です。 特定のフォルダ内(例としてC:\folder1)の複数のExcelファイルにおける シート(例としてSheet1)内のセル範囲A2:I1000の情報をコピーし、 特定のフォルダ内に格納されたExcelファイル(例としてC:\tougou\tougou.xls)の シート(例としてTOUGOU)内のA2を起点に貼り付け処理をしたいのですが、可能でしょうか? <貼り付けイメージ> (例)特定のフォルダ内(例としてC:\folder1)のExcelファイル数が2つの場合 A2 B2 ・・・・・I2 ・ ・ ・ ・ ・ A1999・・・・・・I1999 A2~I1999の範囲にデータが集約される。 どうぞよろしくお願いいたします。

  • 複数のファイルをコピーして別フォルダに貼り付けたい

    複数のファイルをコピーして別フォルダに貼り付けたいのですが、やり方がわかりません。 100近いファイルがあるので、コマンドプロンプトを使おうと思い、ネットで調べたのですがわかりませんでした。(ひとつのファイルならできました。) 複数のファイルをコピーさせる際、 copy (コピー元のファイル) (コピー先のフォルダ) で、コピー元のファイルを複数指定したいのですが、*で指定するのではなく、個別に複数指定したいのです。+を使うと結合されてしまうし、,もだめ。;もだめ。 番号順に3、4、5、・・・となっているファイルの23、24、25だけをコピーして貼り付けたい場合、どうすればよいのでしょうか?

  • VBA ネットワーク上のファイルでカレントフォルダを取得するには?

    VBA ネットワーク上のファイルでカレントフォルダを取得するには? VBA超初心者でネットで色々調べて、ところどころコピーしながらプログラムを作っています。 ローカルのPCでは問題なく動くまでになったのですが、実際にはネットワーク上の共有サーバで実行したいのですが、ネットワーク上ではカレントパスがうまく設定できていないようで、動きません。 CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path というコードでVBAが置いてあるフォルダをカレントディレクトリに設定するようにしています。 どのようにしたらネットワークサーバで動くようになりますか?

専門家に質問してみよう