• ベストアンサー

vbaでテキストファイル(*.txt)を取込みたい

vba初心者です。 Application.Dialogs(xlDialogOpen).Showで選択したテキストファイル(***.txt)をテキストファイルウィザードで、タブ、カンマ、スペース区切りで、エクセルファイルに取り込むマクロを組みたいのですが? 何度やってもうまくいきません。 ご教示願えないでしょうか! excel2002を使用してます。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

どこで躓いて出来ないのか不明ですが,特に何か設定が必要でなければ,ふつーに次のようにすればできます。 sub macro1()  dim myFile as string  myfile = application.getopenfilename(filefilter:="テキストファイル(*.txt),*.txt")  if myfile = "False" then exit sub  workbooks.opentext _   filename:=myfile, _   datatype:=xldelimited, _   textqualifier:=xltextqualifierdoublequote, _   tab:=true, _   comma:=true, _   space:=true ’以下余談  activeworkbook.worksheets(1).move before:=thisworkbook.worksheets(1) end sub

kazu1964
質問者

お礼

ありがとうごさいました。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>Application.Dialogs(xlDialogOpen).Showで選択した この部分は無理ですが >テキストファイル(***.txt)をテキストファイルウィザードで、タブ、カンマ、スペース区切りで、エクセルファイルに取り込むマクロを組みたい この部分は、マクロの記録でできます。 そこで得られたコードを編集するのが得策です。

関連するQ&A

  • VBAの組み込みダイアログの引数Argについて

    エクセルVBAでの質問です。 エクセルとして名前をつけて保存なら Sub aaa() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.xls", ARG2:=1 End Sub テキストファイルとして名前をつけて保存なら Sub bbb() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.txt", ARG2:=3 End Sub CSVファイルとして名前をつけて保存なら Sub ccc() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.csv", ARG2:=6 End Sub でうまくいきます。 今度は、ファイルを開こうとxlDialogOpenに変えました。 Sub aaa2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.xls" ', ARG2:=1 End Sub Sub bbb2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.txt", ARG2:=3 End Sub 以上二つはファイル名入りのダイアログは出ました。でもダイアログの画面にはフォルダーしか表示されません。 Sub ccc2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.csv", ARG2:=6 End Sub これは実行時エラーになりました。 どうも、Application.Dialogs(xlDialogSaveAs)とApplication.Dialogs(xlDialogOpen)では引数ARG2が違うようです。 Application.Dialogs(xlDialogOpen)でのARG2は何の指定なのでしょうか?またその数値の意味はなんでしょうか?

  • VBAのSaveFileNamePathメソッド

    VBAでタブ区切りのテキストファイルを作成しようと思い Application.GetSaveAsFilenameメソッドを使用しています。 FileType = "txt ファイル (*.txt),*.txt" Application.GetSaveAsFilename(fileName, FileType, , Prompt) という風にしたところスペース区切りのテキストファイルが作成されてしまいます。 第2引数のFileTypeにタブ区切りのテキストファイルを指定したいのですが、 どうすればタブ区切りにできるかが解りません。 どなたかアドバイス下さい。 お願いいたします。

  • EXCELでのテキストファイルの開き方

    EXCELでテキストファイルを開く時に、「テキストファイルウィザード」の画面で、カンマやスペースなど何で区切るのか選択をしますが、あの画面のデフォルトはタブ区切りになっています。 いつも同じ形式のファイル(私の場合はスペース区切り)を開くのですが、いちいち開くたびに設定するのが大変です。最初に区切り方法を指定しておいて、ファイルを開く操作を自動にする方法はありますか? よくうまく説明ができていないかもしれません。よろしくお願いします。

  • エクセルVBAでファイルの選択(ZIP解凍後)

    エクセルVBAで Application.Dialogs(xlDialogOpen).Show や FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*")  を使い、ZIPファイル解凍後のエクセルのBOOKを選択させ、開こうとしています。 しかし、解凍後のエクセルファイルは見えるのですが、それを開こうとすると実行時エラー1004になってしまいます。もちろん手動では開くことができます。どのように対応すればよいのでしょうか?

  • EXCELにテキストファイルを読込むマクロ作成

    EXCELにテキストファイルを「カンマ区切り」で読み込みしたいのですが、 下記マクロの内容ではカンマ区切りで正しくインポートされないのですが 作成方法ご伝授お願いいたします。 sub macro1()  dim myFile as string  myfile = application.getopenfilename(filefilter:="テキストファイル(*.txt),*.txt")  if myfile = "False" then exit sub  workbooks.opentext _   filename:=myfile, _   datatype:=xldelimited, _   textqualifier:=xltextqualifierdoublequote, _   tab:=true, _   comma:=true, _   space:=true ’予備  activeworkbook.worksheets(1).move before:=thisworkbook.worksheets(1) end sub

  • エクセルVBA テキスト読み込み(区切り文字で読み込み)  サンプルプログラムの改良をしてください。

    通常、エクセルでテキストファイルを読み込もうとすると、ウイザードが立ち上がりそれを終えると読み込めます。 私はこのウイザードで、「カンマやタブなどの区切り文字で…」を選択し、次へ。次の画面で「タブ」と「スペース」にチェックを入れます。なお、スペースにチェックを入れると、自動的に「連続した区切り文字は1文字として扱う」にチェックが入ります。 そして次へ→、完了としてテキストを読み込んでいます。 このたび、この操作が面倒なので、マクロで実行しようといろいろ調べていたら、自分のやりたいことと一番近いサンプルマクロを見つけました。以下です。 http://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/VBASAMP/IMP_TXT.TXT このマクロをそのまま書いて実行すると、区切り文字を指定でき、読み込めます。 ただし、このままだと区切り文字を1つしか指定できません。 先ほど書いたように、今回は「スペース」「タブ」で区切って開きたいのですが、上記のサンプルプログラムをどう改変すればよいのでしょうか?

  • テキストファイルについて

    あるデータがカンマ区切りなのか、タブ区切りなのか、スペース区切りなのかはテキストファイルにしてメモ帳で開いて確認するしかないんでしょうか? 宜しくお願いします。

  • VBAでテキストファイルからデータを読み込む方法

    VBAでテキストファイルからデータを読み込む方法を探しています。 コンマ区切りのデータを、エクセルに書き込みたいです。 テキストファイルにはコンマ区切りで6個のデータを書き込んであります。 それを、セルD3からD7に書き込む方法を教えていただきたいです。よろしくお願いします。

  • ExcelでのCSVファイルの編集について、

    ExcelでのCSVファイルの編集について、 オートフィルタ機能を使いたいため、 ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。 私が試してみたこと 1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。   ↓ 2.Excelの「開く」からその○○.txtを読み込む。   ↓ 3.テキストファイルウィザードに従い、   1「カンマやタブなどの区切り文字によって~ 」にチェック   2「区切り文字」→ カンマ、「文字列の引用符」 → "   3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように 上記のような手順でCSVファイルを取り込み、編集を終え、 保存する時は   「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。    この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択 これでバッチリOK!…かと思われたのですが、 元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、 編集後の○○.txtは名前 ヨミ 電話番号1  …… タブ区切り(?) となってしまっています。 (CSVファイルとしてはタブ区切りでも問題ないのでしょうが…) どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。 アドバイスよろしくお願い致します。

  • VBA(テキストファイルのデータ コピー)

    質問No.773038にて 回答No.5で 実際にやってみると 確かに動作は抜群に質問通りですが 文字化けして エクセルに貼られています。 肝心の テキストデータの保存方法が悪いのか  検討が付きません。 私個人は アプリから csv 変換用があり やっているのです。しかし エクセルにて手作業にて テキストファイルウィザードで カンマやタブの区切り・・・ 元のファイルは 932 日本語(シフト JIS) フィールドの区切りは セミコロンとしてやり セルにしてやると 確かに問題なく 文字化けしません 何故 VBAでやると 文字化けするのか 原因がわかりません。 どなたか 文字化けに出会った人はいませんか? 対応策があれば ご教授願います。

専門家に質問してみよう