• 締切済み

テキストデータのインポート

初心者です。 エクセルのマクロで、 テキストファイルのインポートダイアログを出したいのですが、 どのようにすれば良いですか?

みんなの回答

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

エクセルのマクロで、テキストファイルのインポートダイアログとは、どういうエクセルの操作で出てくるものですか。 データー外部データの取り込みーデータの取り込みの操作のことか。 そこには「テキストファイルのインポートダイアログ」というのは無いようだが。 何のことを言って居るかわかりにくくて、回答が付いてないのではないか。 ーーー 実質同じものでよければ Sub test01() fname = Application.GetOpenFilename("txt形式,*.txt") MsgBox fname i = 1 Open fname For Input As #1 While Not EOF(1) Line Input #1, a x = Split(a, " ") For j = 1 To UBound(x) Cells(i, j) = x(j) Next j i = i + 1 Wend Close #1 End Sub のようなものでエクセルに読み込める。 テキストといってもCSVファイルの場合は、エクセルとの親和性から、インポートと大げさに言うほどのもので無い。 ーー テキストファイルの場合はデリィミタが空白と限ったものではないと思うので、それが影響するので、はっきり書かないと判りにくい。 ーーー また http://support.microsoft.com/kb/880684/ja の操作をマクロの記録をッ採り一部を修正すると (下記では指定するファイルを開いて実行しないこと、エラーになるようだ。テスト段階で注意) Sub Macro3() fname = Application.GetOpenFilename("txt形式,*.txt") fname = """" & fname & """" Workbooks.OpenText Filename:=fname _ , Origin:=932, StartRow _ :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _ Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _ , 1), Array(4, 1), Array(5, 1), Array(6, 1)), _ TrailingMinusNumbers:=True End Sub ただし FieldInfoのところをフィールド数で変えないといけないので(もちろんデリミタも実情で変える必要がある) Sub test03() fname = Application.GetOpenFilename("txt形式,*.txt") fname = """" & fname & """" Workbooks.OpenText Filename:=fname _ , Origin:=932, StartRow _ :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _ Space:=True, Other:=False, _ TrailingMinusNumbers:=True End Sub としてしまうか。 ーー 初心者がする質問にしては難しいな。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESSで、テキストファイルをインポートしたい

    宜しくお願い致します。 ACCESSで、テキストファイルをインポートしてテーブルを作成したいのですが、ファイル→インポートを選択して、ウィザードを開く方法は分かるのですが、マクロを作成してインポートは出来ないでしょうか? excel、CSVファイルでしたら、「ワークシート変換」、「テキスト変換」のマクロでインポートしたりエクスポートしたり出来ると思うのですが・・・、 (1)テキストファイルをインポートしたり、エクスポートしたりする場合、どのようなマクロがあるのでしょうか。 (ためしに、「出力」マクロで、あるテーブルをCSVファイルにエクスポートしてみたのですが、カンマ区切りにできず、excelのような枠付きのテキストファイルになってしまいました。) (2)容量が大きいデータの場合は、テキストファイルでエクスポートしたほうが良い・・・という認識に間違いはありませんでしょうか。 質問が一つ増えてしまいましたが、宜しくお願い致します。

  • Excelマクロ/ファイル名を指定してインポート

    テキストファイルからExcelへインポートする作業を自動化させたいのですが。 毎回インポート元のファイル名(格納しているフォルダは同じです)が異なるので、マクロ記録ではうまく作成できません。VBAでないと無理でしょうか? できればファイル名をその都度入力するようなダイアログボックスが表示されれば理想的です。VBA初心者なので教えてください。

  • Excel「テキストファイルのインポート」

    Excelの「テキストファイルのインポート」によってテキストファイル(仮に「a.txt」)をワークシート上に読み込んだ状態で、「a.txt」を削除しようとすると、「ファイルが開かれているため削除できない」旨のエラーメッセージが表示されます。 このとき、Excel上では「a.txt」が開かれていることは確認できませんが、マクロを使うなどの手段を用いると「a.txt」を閉じることはできるのでしょうか? 「a.txt」をインポートしたファイルを保存してしまえばいいことはわかっているのですが、あくまでインポートした直後の状態で「a.txt」を削除する手段を探しています。

  • セルで指定した名前のテキストファイルをインポートするマクロの作り方

    例: A1セルに5,B1セルに1を入力。(5月1日を表しています) その後マクロを実行し、0501.txtという5月1日に相当する テキストファイルをインポートするというものです。 該当のフォルダ内には各日付ごとのテキストファイルが 複数存在しており、インポートしたいテキストファイル をエクセルファイルのセル上で指定するのが目的です。 インポートするファイル名を固定しないというマクロの 作り方がわかりません。 どうぞよろしくお願いします。

  • ACCSEEのインポートでテキストファイルにて

    MS-ACCESSでテキストデータのインポートを行おうとしているのですが、マクロを使用してインポート(符号付インポートにて)を行うと、インポート先の形式をテキスト型にしているのに、前ゼロが無くなります。 手動でインポートではうまく行くのですが、何とかマクロでも前ゼロをつけたいので、教えてください。

  • マクロにてaccessへテキストファイルをインポートする方法

    マクロを利用しaccessへテキストファイルをインポートしようとしているのですが、 どのHPを参照しても、 マクロを利用してのテキストインポートはできないみたいなことが書かれてます。 一度、CSVに落として実行するしか方法はないのでしょうか?

  • Excelにテキストをインポートしたのですが

    Excelにテキストファイルをタブ区切りのテキストファイルをインポート →上書き →閉じる 上記の動作をすると再度保存しますかと訊かれます。 上書き保存で保存したはずなのに・・なぜでしょうか?? 自分の予想としては、.txtデータをExcelで開いた状態になっていたので、上書きしたらテキストファイルが更新されただけ。Excelの状態で開いているのにExcel形式で保存してないからもう一度訊かれた。 そんなところでしょうか? 何か他の理由でもあるのでしょうか?

  • テキストファイルのインポートについて。

    CSVカンマ区切りのテキストファイルをエクセルにインポートしたいのですが、 エクセルの1行目の列タイトルの下の行からデータを挿入する方法はありますか? 使っているのはエクセル97です。

  • Accessからのインポートについて

    Accessからテキストファイル(txt、csv)をまとめてインポートするにはどうすればいいですか? あるフォルダにあるテキストファイルをまとめてインポートできるようなマクロはできるのでしょうか? 分かる方がいましたら、よろしくお願いします。

  • Excel 「テキストファイルのインポート」 ダイアログボックスを表示させない方法

    excel2002の「データの取り込み」機能を使って 外部テキストファイルをシート上に直接展開する作業をマクロ記録したところ、 下記のようなマクロコードが自動生成されました。 With Selection.QueryTable .Connection = "TEXT;C:\hogehoge.txt" .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With これを走らせると、 「テキストファイルのインポート」ダイアログボックスが開いて、 インポートするファイルを選ぶよう求められるのですが、 開くファイル名も決まっているので、このダイアログが出ないようにしたいのです。 vbaの記述でこのダイアログをすっとばす方法はあるのでしょうか? ご指導のほどよろしくお願いします。

専門家に質問してみよう