- ベストアンサー
テキストファイルを開く際のFor文の使い方
質問です。あるフォルダに入っているテキスト形式のデータ10個をエクセルで開いていくVBAのプログロムを書いているのですが、エラー文で「i.txtがありません」と表示されます。私の書いたプログラムは下記です。 Sub テスト() テスト Macro Dim i As Integer For i = 0 To 5 ChDir "C:\Documents and Settings\データ" Workbooks.OpenText Filename:= _ "C:\Documents and Settings\データ\i.txt" _ , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=True Next i End Sub このプログラムの目的は、テキストデータの入っているフォルダを他の名前に変更したときも、その中に入っているテキストデータ10個をエクセルで展開するためです。おそらく"C:\Documents and Settings\データ\i.txt"のiの部分が間違えていると思うのですが、どうすればいいでしょうか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
次のように変更すればいいのではないでしょうか。 "C:\Documents and Settings\データ\i.txt" ↓ "C:\Documents and Settings\データ\" & i & ".txt"
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
コードばっかり書いて、中身を説明してない。 C:\Documents and Settings\データフォルダの中の 1.txt,2.txt,3.txt・・といったファイル名のファイルを開きたいということか。 プログラムの5回のOpenの繰り返しと、 >テキストデータの入っているフォルダを他の名前に変更したときも、その中に入っているテキストデータ10個をエクセルで展開するためです、の10個とはどういう関係か。書き間違い? >フォルダを他の名前に変更したときも それはC:\Documents and Settings\データ\の部分を変えることになるのでは? なぜこんなことを書いているのか。このままでは旨く走らないのは 当たり前。 ーー フォルダの中のエクセルブックを捉えて初めから10個ということか。 10個しかない場合は良いが、それ以上ある場合は名前を指定で捉えないとダメでは。 結局何がしたいのか良くわからない。このプログラムの目的は・・があるがために。 ーーー #1でご指摘のように データ\i.txt" _ は文字列(フルパスとファイル名を””で囲っているでしょう)の中に変数と思っているものiを書いて変化するだろうと思ってもダメ。初歩的なミス。文字列をiの前までと、iの次からに分割し、その間に ”・・・データ\" & i & ".txt" _・・のように結合しないとだめ。 本当はiを文字列化して結合するのだが、VBAでは上記の書き方でも 半角の1,2・・の場合はOK。