質問: マクロを使用してcsvファイルをexcelにインポートする excelワークシートで特定のセルに日付を入力して、マクロがテキストファイルを含むフォルダーに移動するマクロを開発したいと思います。あなたが言うことができるデータベース。日付として書き込まれている対応するファイル名を検索し、データを区切り記号で区切り、最初に日付を入力した場所のすぐ下のセルに貼り付けます。フォルダーは常に同じ場所にあり、テキストファイルはすべてdd_mm_yyyyでフォーマットされます。そして、下のセルは常に空になります私が求めているものを理解しやすくするためのいくつかの写真。
回答: マクロ内からテキストインポートwizard(または、その機能を使用できます)を呼び出すことができるため、これは思ったよりも簡単です。csvパーサーを記述したり、そのような空想は何でも。実際、以下のマクロで行ったのは、組み込みのレコード関数を使用し、ニーズに合わせて少し調整することだけです。マクロの使用: 何か問題が発生した場合に備えて、現在のexcelファイルをバックアップします。 マクロのfolderの定義を、すべてのデータファイルを含むパスに変更します。末尾にスラッシュが含まれていることを確認してください。 必須ファイルの名前を含む列のヘッダーセルを選択しますファイル拡張子を含む。拡張子を削除したい場合は、データのロード後にこのフィールドを編集できます。 マクロを実行します。 行動現在のセルからファイル名を取得し、指定されたfolderを調べて、セルで指定されたファイルを開きます。次に、csvとしてインポートします。正確に1つのセル下選択したセル(マクロの開始時).そのため、マクロを実行すると、選択したセルの下のセルが上書きされる可能性があります。注意が必要です。ファイルが見つからない場合、またはその他のエラーが発生した場合、これは通常のvbaエラーボックスで失敗し、わかりやすいエラーメッセージは表示されません。マクロコードquerytablesを自分で使用する方法を学ぶのではなく、録音から取得すると言ったように、これの一部はおそらくトリミングできますが、そのままでは問題はなく、確実に機能するようです。sub loadfromfile() dim filename as string, folder as string folder = "c:\path\to\your\files\" filename = activecell.value activecell.offset(1, 0).range("a1").select with activesheet.querytables _ .add(connection:="text;" & folder & filename, destination:=activecell) .fieldnames = true .rownumbers = false .filladjacentformulas = false .preserveformatting = true .refreshonfileopen = false .refreshstyle = xlinsertdeletecells .savepassword = false .savedata = true .adjustcolumnwidth = true .refreshperiod = 0 .textfilepromptonrefresh = false .textfileplatform = 850 .textfilestartrow = 1 .textfileparsetype = xldelimited .textfiletextqualifier = xltextqualifierdoublequote .textfileconsecutivedelimiter = false .textfiletabdelimiter = false .textfilesemicolondelimiter = false .textfilecommadelimiter = true .textfilespacedelimiter = false .textfilecolumndatatypes = array(1, 1, 1, 1) .textfiletrailingminusnumbers = true .refresh backgroundquery:=false end with end sub