• 締切済み

EXCEL(VBA)

EXCELVBAで指定したフォルダ内にtextファイルをまとめるマクロを作成したいと思っています。 条件としましては、フォルダ名の5文字とtextファイルの最初の5文字を照合させて一致した場合そのフォルダにtexitファイルを収納していくといった感じです。 できればソースを教えていただくと助かります。

みんなの回答

回答No.3

Option Explicit Sub TextCheck() Const cnsDIR = "*.txt" Const cnsPATHNAME$ = "C:\フォルダパス\" Const strFOLDER$ = "check" '←入力フォルダ名 Const outBASENAME$ = "outfile.txt" '←出力ファイル名 Dim strPATHNAME$, strFILENAME$, outFILENAME$ Dim Irec$, inOK%, inNG%, outCNT! strPATHNAME = cnsPATHNAME & strFOLDER & "\" outFILENAME = cnsPATHNAME & strFOLDER & "\" & outBASENAME 'ファイル名の取得 strFILENAME = Dir(strPATHNAME & "*.txt", vbNormal) '出力ファイルオープン Open outFILENAME For Output As #1 inOK = 0: inNG = 0: outCNT = 0 'ファイルが見つからなくなるまで繰り返す Do While strFILENAME <> ""  '出力ファイルを対象としないように  If strFILENAME <> outBASENAME Then  '条件   If Left(strFILENAME, Len(strFOLDER)) = strFOLDER Then    inOK = inOK + 1    Open strPATHNAME & strFILENAME For Input As #2    Line Input #2, Irec    '出力    Print #1, Irec: outCNT = outCNT + 1    Do Until EOF(2)    '次のレコード入力     Line Input #2, Irec     '出力     Print #1, Irec: outCNT = outCNT + 1     Loop    Close #2   Else    inNG = inNG + 1   End If  End If  '次のファイル名を取得  strFILENAME = Dir() Loop Close #1 MsgBox ("対象:" & inOK & " 対象外:" & inNG & " 出力件数:" & outCNT) End Sub 主旨があってますか?環境設定は、ご自分で。

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

良く質問者にあるが、 下記のようにも取れることが判らないのかな。 フォルダ内にtextファイルをまとめるマクロ、の意味が2義的で不明瞭。 ●在るフォルダのテキストファイル「のすべて)をテキストファイルだけ別フォルダに写す ●在るフォルダの指定のテキストファイルを別のあるフォルダに写す ●在るフォルダのすべて(または指定の)のテキストファイルをレコード的に寄せ集めて、指定したフォルダ内の1本のテキストファイルにする。 など。 ーーー 在るフォルダのテキストファイルをとらえつくすコード テキストファイルを読むコード、書き出すコード 別フォルダにファイルを写すコード などは VBScriptの本や、WEBのGoogleでも照会すれば、コード実例が出てくる。 この質問は、課題を丸投げしているが、回答者などは皆相当長期の苦労を経て経験を積んでいるのだ。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

フォルダ名はどうやって取得させようとしていますか? どこかのセルにフォルダ名を書いておく? InputBoxを使う? textファイルはどこにあるのですか? フォルダ名の5文字、とはどういう意味ですか? 5文字のフォルダがある? 6文字以上のフォルダの最初の5文字? あなたはどの程度VBAを解っているのでしょうか? プログラムを書いてあげたら、それをどうやって実行させるか解りますか? 簡単なプログラムなら書けますか?

関連するQ&A

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

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

  • VBAでのファイル検索

    ExcelVBAで下記のマクロを組みたいのですが、 やり方がわからなくて困っております。 ・複数のcsvファイル内から条件に一致する内容のファイルを検索して  開きたい。  ※条件というのは、csvファイル内に記入してある、文字列を指します。  ※csvファイル名でのファイル判別は不可  フォルダ内のcsvファイルを全て開いて、一つのファイル毎  If文でチェックしていくしかないでしょうか? どなたかご存知の方、指導お願い致します。

  • マクロで文字検索と書き出し

    Excelのマクロで各フォルダ内にあるテキストファイルに特定文字が含まれていたら そのテキストファイルがあるフォルダ名をセルB1に書きだすというマクロを組みたいです。 Aというフォルダ内に 20150328 20150410 20160322 ・・・・ ・・・・ ・・・・ 20160412 というようなフォルダ名のついたフォルダが300個近くあります。 300個近いフォルダ内にはテキストファイルがあり(ないものある) そのテキストファイル内にセルA1で入力されている文字と同じ物があれば(完全一致ではなく一部一致でよい) 一番最初に見つけたそのテキストファイルが入っているフォルダ名をB1に 書きだす方法が知りたいです。 例えば上記の例で言うと 検索した文字 【計測】だとします。 20150328 20150410 20160322 このフォルダ内のテキストファイルには全て 計測 とい文字が含まれていますが 名前の順番からすると20150328のフォルダが最初なので そのフォルダ名をB1に書きだすという感じです。 また、これは出来ればでいいのですが 300個近いフォルダを全て調べていくと時間が掛ってしまうので セルA2に日付を入力しておき 上記のマクロを実行すると、セルA2に入力した日付以降に作成されたフォルダから 検索を始めるようにしたいです。 このような事が出来るかわかりませんが、宜しくお願いします。

  • Excelマクロでフォルダ一覧作成

    ExcelマクロでExcelファイルのA列に30行程、入力されている一覧の文字でフォルダを指定したフォルダ内に作成するソースを考えています。色々、試してはいますがどれもうまくいきません。教えていただけると助かります。

  • ExcelVBAのマクロを使ってテキストファイルの文字を読み込む

    お世話になります 表題のとおりなのですが、ExcelVBAのマクロを使ってテキストファイルの文字を読み込むマクロの書き方を探しています。 具体的には、ExcelVBAで作ったボタンを押すと、あるテキストファイル(TEST.txt)に書かれている文字列をExcelVBAで取得して、それをセルに表示させるものです。 VBA関連のサイトがあまり無く困っています、宜しくお願いします。

  • フォルダ内のファイルに順番にマクロ実行(VBA)

    こんにちは。 いつもこのサイトにはお世話になっています。  いま、WORDマクロで、あるプログラムを作成したのですが、現在の状態だと、ファイルにマクロを実行させたい場合、そのファイルを開いてマクロを実行するしかありません。  そうではなくて、指定されたフォルダの中にあるファイルのうち、rtf拡張子で終わっているものに順番に自動的にマクロを実行するというようなプログラムは書けないのでしょうか。  プログラムのなかに、ファイルのパスを指定してそのファイルに実行する方法は分かったのですが、フォルダだけ指定しておいて(というよりユーザにテキストボックスで指定させて)、そのフォルダに入っているrtfファイルすべてにマクロを実行する方法はありますでしょうか?    もしありましたら教えていただいたいと思い投稿しました。よろしくお願いします。

  • エクセルVBAまたは関数でファイル検索する方法

    お世話になります。 概要 エクセルVBAまたは関数でファイルの検索をする方法を教えて下さい。 詳細 ディスクにたくさんの楽曲ファイルがあります。 その中に目的のファイルがあるか否かをエクセルのVBAまたは関数を使って検査したいです。 具体的には、エクセルシートのA列に曲名が入力してあります。 例として、A1に「青い珊瑚礁」と曲名がテキストで入っています。 さて、これと同じファイル、またはフォルダが、ディスクの中に存在しているか否か、の結果をB1に表示したいと思います。 出来ますでしょうか? ディスクの全フォルダに対して検索を掛けると大変なので、検索先のフォルダは絶対パス指定して、それ以外のフォルダは検索しなくていいものとします。 もし、一致するフォルダ、ファイルを探すのは大変、というのであれば、 指定したフォルダに存在するすべてのファイル、フォルダの名称を「テキストファイルとして書きだす」方法を教えてください。 そのテキスト文字列に対して検索をすれば同じ結果が得られますので。。。 よろしくお願いします。

  • エクセル VBA

    エクセルで指定したフォルダから シート1のA1セルに記入された名前のテキストファイルを 開くマクロを作りました 変数filepassがセルA1に記入されたファイルのパスのとして Workbooks.OpenText filename:=filepass, StartRow:=1 _ , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _ , Space:=False, Other:=False, FieldInfo:=Array(1, 1) しかし このままだと指定したフォルダ(filepass)にファイルがなかったとき エラーになります もしファイルがなかったときに 何かメッセージを表示させたいのですが どのようにすればよいのでしょうか どなたか 教えてください VBAは素人です よろしくお願いします

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • VBAでフォルダ内のhtmlファイルを読み込みたい

    フォルダ内のhtmlファイルをテキストで読み込んで、 一部修正を行いたいと思っています。 いろいろ調べて、ExcelVBAやAccessVBAで試してみたのですが、 フォルダ内のファイルを認識しないのか、読み込んでくれませんでした。 バージョンは2003です。 良い方法があれば、教えていただけると大変助かります。 よろしくお願いいたします。

専門家に質問してみよう