- ベストアンサー
EXCEL 2003のVBAでテキストファイルの取り込み方法
- EXCEL 2003のVBAを使用してテキストファイルを取り込む方法について教えてください。
- テキストファイルの取り込みには、EXCEL 2003のVBAを使用します。テキストファイル名の絞り込み方法についてアドバイスをいただけないでしょうか。
- EXCEL 2003のVBAを使って、テキストファイルの取り込み方法を実装したいと思っています。テキストファイル名の絞り込みについてのヒントを教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
方法1 今のマクロでFILENが入ってるフォルダが判りますから,そこにある所定のファイルをすべて拾います。 基本形: FILEN = application.getopenfilename ’中略 myPath = left(instrrev(filen, "\")) myfile = dir(mypath & "*.txt") do if myfile like "AA*.txt" or myfile like "BB*.txt" then msgbox myfile end if myfile = dir() loop until myfile = "" 方法2 添付の参考URLなどを参考にフォルダ(ディレクトリ)を指定させ,そこにある所定のファイルを全て拾います。 フォルダを特定したあとは方法1と同じです。 http://officetanaka.net/excel/vba/tips/tips39.htm
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
>- Directoryはどこに入るか決まりがありません。 こういう場合は、予めリストを探して、どこかに置いておくのがふつうです。 >このマクロを使用するユーザーがどこのDirectoryにテキストファイルを保存しているかわからない フォルダを決める方式のVBAは出来ないのは分かるけれども、オープンダイアログは、あまり関心しません。 他の方法は提供できるけれども、これ以上は、ご質問者さんの技術力も依存してしまいますが、簡単に言うと、UserForm のListBoxなどを利用して、クリックして開くなり、工夫をすればよいと思います。Excel 2003 では未だ使えるFileSearchオブジェクトか、それ以外の検索ツールを別に作らなくてはなりません。 '// Sub OpenDialogTest1() Dim fName As Variant 'Variant のみ Dim myDate As String Const sPF As String = "AA" 'プレフィックス myDate = Format$(Date, "yymmdd") '日付 Application.SendKeys sPF & myDate & "*" Application.SendKeys vbCr fName = Application.GetOpenFileName("テキスト(*.txt),*.txt") If VarType(fName) = vbBoolean Or fName = "" Then Exit Sub 'Workbooks.OpenText Filename:=fName MsgBox fName End Sub '// このコードは、環境に影響を受けますので、必ず、思った通りになるとは限りません。 なお、FILEN という名称は混乱しやすいので、やめました。FILEN というのは、ファイルサイズを連想させます。また、すべて大文字で書くと、定数を連想されます。
- fujiponxx
- ベストアンサー率32% (186/580)
1.専用シート(テキストボックスとボタン)を作成し、 テキストファイルのフルパスとファイル名を 登録変更できるようにすれば使用者が設定できます。 2.毎回ダイアログを開き、ファイルを指定するようにすればできますが、 毎回、毎回めんどくさいですね。 3.ディレクトリだけの問題であれば、マクロとファイルを同じところにおいて実行してください という決まりを作れば解決します。
- 0909union
- ベストアンサー率39% (325/818)
>でやると、Directoryの問題は解決しますが 何が問題だったのか意味不明です。 少しプログラム的な制御コードを学びましょう。IF、while , for ,各種演算子、それに、関数ですね。文字列の検索などたくさんあるので、暇な時にヘルプを見てサンプルで試してください。 この手の質問が出る方は、そのようなヘルプ(リファレンス)をほとんど活用していません。リファレンスを見れば、この程度の初級レベルの問題であれば100%が解決します。 私なんかヘルプを見て作って売りました。 ヒントとしては、正規表現と文字列検索関数ですね。ヘルプで参照してみましょう。ヘルプが設置されていないのなら、 Excel VBA 正規表現 でネット検索。
お礼
ありがとうございました おかげさまでうまくいきました