ExcelマクロでCSVファイルを指定日付でコピーして保存する方法

このQ&Aのポイント
  • Excel2000を使用して、指定日付のCSVファイルを選択し、データを新しいEXCELファイルにコピーして保存する方法について教えてください。
  • 実際には、ディレクトリに格納されているCSVファイルから指定された日付のファイルを選択し、対象ファイルのデータを新しいEXCELファイルにコピーして保存します。
  • Excelマクロを使用して、指定日付のCSVファイルを選択し、データを新しいEXCELファイルにコピーして保存する方法について教えてください。
回答を見る
  • ベストアンサー

現在、以下のような処理のマクロ[EXCEL2000]を作成しております

現在、以下のような処理のマクロ[EXCEL2000]を作成しておりますが、 今月から初めて携わる分野なので四苦八苦しております。 お力添えをお願いいたします。 なお、下記に出てくるディレクトリに関しては、今後変更も考えられますので コンフィグファイルを別途用意して指定するように作成します。 以下、処理の流れです。 (1)Aと言うディレクトリに以下のようなCSVファイルが格納されています。 ※例  20100201_AAA.csv  20100201_bbb.csv  20100201_ccc.csv  20100202_AAA.csv  20100202_bbb.csv (2)日付選択画面にて指定の日付を選択し、作成ボタンを押下します。  ※添付ファイルの画像参照 (3)指定された日付からAに格納されているCSVファイルを選択し、  対象ファイルのデータを新規EXCELファイルにコピーします。  ※例   2010年2月1日を選択した場合、以下のファイルが対象となります。   20100201_AAA.csv   20100201_bbb.csv   20100201_ccc.csv (4)新規EXCELファイルをCSVファイルと同名でBのフォルダへ保存します。  ※例   20100201_AAA.xls   20100201_bbb.xls   20100201_ccc.xls (5)終了 このような流れになっていますが、日付指定の画面作成から すでに躓いております。 お手数ですが、ご教授いただけますと助かります。 また今後の勉強のために、お勧めのサイトなどございましたら 教えていただけると幸いです。 それではよろしくお願いいたします。

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

  • ベストアンサー
  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

 とりあえず、このEXCELブックファイルの存在するフォルダにある所定CSVファイルのリストを出すコードを作ってみました。ファイルシステムオブジェクトの活用を勉強してみましょう。  さらに繰り返しの中でエクセルアプリケーションオブジェクトを操って、新規ブックファイルを作り出していくのです。そのコードはまたの機会に。 Sub ボタン1_Click() Dim objFS As Object, objFolder As Object, colFiles As Object Dim i As Integer Dim strPath As String Dim FileList As String, hizuke As String Dim aFile As Variant Set objFS = CreateObject("Scripting.FileSystemObject") strPath = ActiveWorkbook.Path Set objFolder = objFS.GetFolder(strPath) Set colFiles = objFolder.Files i = 1 FileList = "" hizuke = InputBox("日付を入力して下さい" & vbCr & " 例 20101231", "ファイル名の日付指定") For Each aFile In colFiles If Left(objFS.GetFileName(aFile), 8) = hizuke And LCase(objFS.GetExtensionName(aFile)) = "csv" Then MsgBox objFS.GetFileName(aFile) & "を見つけました。" FileList = FileList & objFS.GetFileName(aFile) & vbCr End If Next MsgBox FileList Set colFiles = Nothing Set objFolder = Nothing Set objFS = Nothing End Sub

cliosworld
質問者

お礼

seastar3様 ご回答ありがとうございます。 参考にさせていただき勉強します。 また、何かありましたら宜しくお願いいたします。

関連するQ&A

  • セルの参照エラー

    VBA初心者です。 よろしくお願いします。 excelのVBAで複数のcsvファイルを読み込み1つのブックにまとめるツールを作成しています。 csvの1つは各csvからデータ参照する作りになっています。 例) aaa.csv =bbb!R1C1,=ccc!R1C1 bbb.csv 11 ccc.csv 12 上記3つのcsvファイルを1ブックにまとめた場合 aaaシートは11 12と表示されることを期待していますが 結果は参照エラーとなってしまいます。 よい対処方法ががあれば教えて下さい。 処理内容は以下の通りです。 ・csv.csvを読みこみ「まとめ.xls」として保存 ・bbb.csvを読みこみ「まとめシート」に移動 ・aaa.csvを読みこみ「まとめシート」に移動

  • Accessのマクロについて教えてください。

    WinXP Access2002です。 現在Accessのあるフォームにコマンドボタンを貼り付けこのボタンをクリック時にマクロでアプリケーションの実行を指定しExcelのファイルを開いています。具体的には c:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10\EXCEL.EXE D:\EXCEL\AAAY\BBB.XLS です。D:\以下はExcelで作ったファイルの格納場所です。現在これでうまくいっています。 この場合BBB.xlsしか立ちあがりません。これはこれでBBB.xlsだけで用が足りているので何ら問題ないのですがやろうとしていることは¥AAAのホルダーに入っている複数のCCC.xls、DDD.xls・・・・・・等をマクロの途中ダイアログボックス等で仮に今ほしいファイルがXXX.XLSだったとしたら目的のXXX.xlsを指定し開く方法がありますでしょうか。 又これが駄目ならマクロで¥AAAのホルダーまで開く方法はあるのでしょうか。何せAccessのマクロでExcelは立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

  • EXCEL マクロ どう記述したらよいですか?

    お世話になります。 まったくの素人です。 以下のような処理をしたいと考えております。 1)1つのフォルダに AAA.xls BBB.xls CCC.xls・・・をまとめておきます。   それとは別に、フォーマット.xls を用意します。 2)AAAを開き、aというシートにある列(1列)を選択、コピーし、   フォーマットの 【F列】 に 【値貼り付け】 で貼り付ける。   AAAは閉じる。 3)BBBを開き、aというシートにある列(1列)を選択、コピーし、   フォーマットの 【G列】 に 【値貼り付け】 で貼り付ける。   BBBを閉じる。 4)CCC・・・(aというシート名は固定、コピーする列も固定で1列のみです)。 5)以下、フォルダ内の全ファイルについて、同じ処理を繰り返し、   すべて貼り付け終えたら、完了。 宿題の丸投げのようで申し訳ないのですが、ご教示いただけると 幸いです。よろしくお願いします。

  • エクセルVBA、他のファイルからのコピー

    BBA初心者です aaa.xlsのマクロで aaa.xls にbbb.csvのデータを貼り付けたいのですが Sub () Windows("bbb.csv").Activate…ここのbbbってところをセル参照にしたいのです ActiveCell.Range("A1:A10").Select Selection.Copy Windows("aaa.xls").Activate ActiveSheet.Paste End Sub 1つ上のセルにbbbと入力されていればbbb.csvのデータを 1つ上のセルにcccと入力されていればccc.csvのデータを 貼り付けれるようなマクロはどう書けばいいのでしょうか よろしくお願いします

  • ファイルから検索条件を読み込んでGREPを実行したい

    INPUTファイルを以下のように作成します。 >input.txt aaa bbb ccc ・ ・ ・ 特定のディレクトリの複数ファイルに対して grepを順にaaa,bbb,ccc・・・ というようにinput.txtから読み込んで実行し、結果をそれぞれaaa.txt,bbb.txt,ccc.txt・・・ へ出力したいのですが、方法がわからなくて困っています。 どなたかご教授お願いいたします。

    • ベストアンサー
    • Perl
  • CSVファイルをAccessに取りこみたい

    以下のような2つのCSVファイルがあるとします。 【hoge1.csv】 aaa,bbb,ccc,ddd 1,2,3,4 【hoge2.csv】 aaa,bbb,ddd,eee,fff 1,2,4,5,6 Accessをあまり使用したことがないので教えていただきたいのですが、 hoge1.csv、hoge2.csvを、以下のような形で Accessの1つのテーブルにインポートする事はできるのでしょうか? ---------------------------- | aaa | bbb | ccc | ddd | eee | fff | | 1 | 2 | 3 | 4 |  |  | | 1 | 2 |  | 4 | 5 | 6 | ---------------------------- ※「aaa」「bbb」…をフィールド名としたいです vb等でプログラムを自作するしかないのでしょうか? 何か良い方法がありましたら教えてください。お願いします。

  • Excelマクロ パスの指定方法

    Excelのマクロで別のファイルを編集するのにパスを指定しています。 現状は使用しているドライブ、フォルダが固定されているので下記の様に ドライブ名から指定しています。 <現状>  ・C:\AAA\BBB\PPP.xls   →マクロの入っているファイルを指定  ・C:\AAA\BBB\CCC\SSS.xls  →編集したいファイルを指定 今後、別のドライブやフォルダで使用出来る様にしたいのですがどうすれば よろしいでしょうか?  ・~\BBB\PPP.xls、~\BBB\CCC\SSS.xlsの位置関係は固定  ・~\BBB\CCCの下にあるSSS.xlsを開いて編集したい。  ・~\BBB\PPP.xlsがC\、D\等どのドライブ、フォルダになっても使用可能にしたい。 以上よろしくお願い致します。

  • 大量のCSVデータを1つのエクセルデータにまとめる方法について

    今仕事で、CSVファイルが400ファイル程あり、これを一つの エクセルファイルにまとめなくて加工しなければならないのですが うまいことVBAを活用して効率的にできないか思案中なのですが うまい具合に行きません。 データの持ち方として ○CSVファイル1 1.AAA 2.BBB ○CSVファイル2 3.CCC 4.DDD となっており、これを1つのエクセルファイル上で 1.AAA 2.BBB 3.CCC 4.DDD としたいのですがなにかいい方法はないでしょうか? 1つのブックで外部データの取り込みでCSVを次々に選択して いくVBAなんてあれば教えていただけないでしょうか? よろしくお願いします。

  • excelのマクロでファイル一覧取得,グラフ作成

    以下のような作業をするために,EXCELのマクロを組もうと考えています. 指定したフォルダ以下のCSVファイルを取得(サブフォルダも含む)  ↓ 見つけたCSVファイルをエクセルで開き,値が含まれている範囲を選択してグラフを作成  ↓ "*.xls"として保存 エクセルのマクロは初めてなので,どうコーディングすればいいか全くわからず困っています. どなたかご教示くだされば幸いです. よろしくお願いいたします.

  • 【Excel】「リンクを更新する」のダイアログを表示させないようにするには

    教えて下さい! AAA.xlsとBBB.xlsというファイルがあります。 AAA.xlsを開くと自動的にBBB.xlsが開くようになっています。 BBB.xlsにはグラフがあり、AAA.xlsからデータを読んでいるため「リンクを更新しますか?」というダイアログが表示されてしまいます。 これを表示させないようにするにはどういう記述をしたらよろしいでしょうか? AAA.xlsを開く際にBBB.xlsも開くように、AAA.xlsに以下のように記述してあります。 ================================================================ Sub Auto_open() Workbooks.Open Filename:=ThisWorkbook.Path & ("\BBB.xls") Workbooks("AAA.xls").Worksheets("Sheet1").Activate End Sub ================================================================ その記述に付け加える形になると思うのですが。 宜しくお願い致します。

専門家に質問してみよう