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

このQ&Aのポイント
  • EXCELにテキストファイルをカンマ区切りで読み込むマクロを作成する方法について教えてください。
  • 下記のマクロではテキストファイルがカンマ区切りで正しくインポートされないため、正しい方法を教えてください。
  • EXCELにテキストファイルをカンマ区切りで読み込むためのマクロを作成する方法を教えてください。
回答を見る
  • ベストアンサー

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

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

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

ご相談に掲示されたマクロで正常に作動します。 もう一度,ご質問に書かれたそのマクロをあなたのエクセルに登録し直してから,改めて実施してみてください。 それでもダメなら 1.あなたが「実際に動かしているマクロ」をあなたのエクセルからコピーして,掲示してください 2.そのマクロで解決できない実際のテキストファイル(の中から,必要に応じて公開しちゃまずい内容とかは削除して)の内容を添えて, 3.念のため(通常は関係ありませんが)あなたが普段使っているエクセルのバージョンを添えて 別途のご相談として投稿し直してください。

ynet
質問者

お礼

ありがとうございました。 再質問しました。    祥子

関連するQ&A

  • 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

  • テキストファイルのインポートが出来ません。

    デスクトップの同じフォルダ内に a.txt を作成してファイルのインポートを行おうとしましたができません。なぜでしょうか? Sub TextFileOpen() Workbooks.OpenText Filename:="a.txt", _ DataType:=xlDelimited, _ comma:=True End Sub

  • エクセル マクロ 教えてください

    お世話になります エクセルのマクロ記録を使った結果が下記のようになりました。 そこで、ファイルは自分で選択して開きたいと思い 色々調べた結果 Application.GetOpenFilenameを使用すればよい事がわかりましたが、どの部分を変更すればよいのかわかりません やりたいことは、txtファイルの中身の不要な部分を削除して必要な部分だけを取り出したいのです。 どうぞ、よろしくお願いします。 Sub Macro1() ' ChDir "C:\Documents and Settings\My Documents\next\aaa" Workbooks.OpenText Filename:= _ "C:\Documents and Settings\My Documents\next\aaa\aaa.txt" _ , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=True, Other:=True, OtherChar:="(", FieldInfo:= _ Array(Array(1, 9), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 9), Array(7 _ , 9)), TrailingMinusNumbers:=True Cells.Select Cells.EntireColumn.AutoFit End Sub

  • エクセルVBAのコンパイルエラー

    下記VBAでコンパイルエラーを起こして進みません 解消法をご教授いただけると幸いです やりたいこととしては ボタンで任意のタブ区切りのテキストを指定し 特定のシートに値をコピーすることです ---- Private Sub CommandButton1_Click() Dim Sh As Worksheet Dim FileN As String Set Sh = ThisWorkbook.Sheets("import") ' <-- 読込みシート指定(※) FileN = Application.GetOpenFilename("テキストファイル,*.txt") If FileN <> "False" Then Workbooks.OpenText Filename:=FileN, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Tab:=True End If Set Sh = Nothing End Sub ----

  • ファルダに有るすべての拡張子TXT.ファイルをExcel1個にまとめる

    VBAでフォルダを指定した後、そこのファルダに有るすべての拡張子TXT.ファイル(中身はCSVファイル) を新しいExcelを1個開いてまとめるマクロを何方か教えてください。 下記だとエクセルが多数開いてしまいます。 (TXT.ファイル1個=Excelのシート1枚) -------------------------------------------------------- Sub ffff() myPName = Application.GetOpenFilename("データ(*.TXT;*.DAT),*.TXT;*.DAT") If myPName = "False" Then Exit Sub myKAKUCHOSI = Right(myPName, 4) myPATHNAME = CurDir myLName = Dir(myPATHNAME & "\" & "*" & myKAKUCHOSI) Do While myLName <> "" Workbooks.OpenText Filename:=myPATHNAME & "\" & myLName, DataType:=xlDelimited, Tab:=True, Comma:=True, Space:=True myLName = Dir() Loop End Sub

  • VBAでのcsv読み込みについて

     VBA初心者です。テキストファイル(ファイルの中はカンマ区切り)を別なEXCELシートではなくて、VBAを実行したEXCEL内のシート(例えばSheet2)に落としたいのですが、うまくいきません。  Workbooks.OpenText Filename:="C:\csv_test.txt", StartRow:=1, DataType:=xlDelimited, Comma:=True~ と記述すれば、別シートには落ちるのですが・・・。  簡単なことかもしれませんが、ご回答よろしくお願いいたします。

  • テキストファイルを開く際の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の部分が間違えていると思うのですが、どうすればいいでしょうか?よろしくお願いします。

  • テキストファイルを開く際の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の部分が間違えていると思うのですが、どうすればいいでしょうか?よろしくお願いします。

  • Excel VBAでOpenTextのFieldInfoが効かない・・

    Excel2000のVBAマクロで、CSVファイルを読み込んで マッチング処理をしたいと考えています。 CSVファイルはコードテーブルで参照のみ。 中身は、「コード,名前,区分」の配列になっております。 コードは"0012345"と"12345"は別物として扱いたいので 文字列として読み込む必要があります。 CSVファイルの中身は以下の感じです。 12345,名前1,区分1 0012345,名前2,区分2 0000022222,名前3,区分1 ... そこで、以下のようなコードを書いて見ました。 Sub OpenCSV() Workbooks.OpenText Filename:="C:\CSV.txt" _ DataType:=xlDelimited, Comma:=True, _ TextQualifier:=xlTextQualifierNone, _ FieldInfo:=Array(Array(1,2),Array(2,2), _ Array(3,2)) End Sub ところが開いたシートではコード部分が文字列として 取り込まれておらず、セルの書式も標準になっています。 FieldInfoの設定方法を変えて、 Sub OpenCSV() Dim tmpInfo(256) As Variant Dim i As Integer For i = 1 to 256 tmpInfo(i) = Array(i,2) Next Workbooks.OpenText Filename:="C:\CSV.txt" _ DataType:=xlDelimited, Comma:=True, _ TextQualifier:=xlTextQualifierNone, _ FieldInfo:=tmpInfo End Sub このようなコードにしたところ、「型が一致しない(エラー13)」というエラーになってしまいます。 結局、FieldInfoが効いてない動きなのですが、 どこが悪いのか皆目見当が付きません。 アドバイスを頂けますと幸甚です。

  • Excel VBAでテキストを開く際の表示形式

    恐れ入りますが、ご存知の方、ご教授願います。 Excel VBAにてテキストファイルを開く際に、表示形式を"標準"ではなく"文字列"で取り込もうと思います。 "文字列"にするにはVBAで下記のように記述します。 ------------------------------------------------------------------ Workbooks.OpenText Filename:= _ sFileName _ , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array( Array(1, 2), Array(2, 2), Array(3, 2)) , TrailingMinusNumbers:=True ------------------------------------------------------------------ FieldInfo:=部分に列数だけArray(x, 2)を指定しますが、一括で"文字列"指定することは可能でしょうか。 恐れ入ります。ご教授願います。

専門家に質問してみよう