• ベストアンサー

VBAでテキストファイルに書き出し時の改行方法

Excel VBAでテキストファイルに書き出しをしたいと思っています。テキスト内で改行を指定したいと思うのですが、どのようにやったらよいでしょうか? Dim str As String str = "ABC" & vbCrLf str = str & "DEF" & vbCrLf とやってもうまくいきません。何が悪いと考えられるでしょうか?

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 それとも、 Sub try() Dim n As Long Dim str As String Dim v As Variant str = "ABC" & vbCrLf str = str & "DEF" & vbCrLf n = FreeFile Open "D:\Test.txt" For Output As #n For Each v In Split(str, vbCrLf) Print #n, v Next Close #n End Sub こうゆう事でしょうか?

その他の回答 (2)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

>Excel VBAでテキストファイルに書き出しをしたい >うまくいきません  どういう方法で書き出しをしていらっしゃるのか? どこが上手くいかないのか? もう少し詳しい情報を示されたらと存じます。  個人情報を伏せて、お手持ちのVBAコードをここへコピペしてみてください。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

テキストファイルを操作する http://www.officetanaka.net/excel/vba/file/file08.htm ファイル操作の基本 コードの一部修正 Sub Sample21() Dim n As Long n = FreeFile Open "D:\Test.txt" For Output As #n Print #n, "ABC" Print #n, "DEF" Close #n End Sub と言う事?

関連するQ&A

  • VBAの文字列の中に”(全角のダブルコーテーション)を使う

    VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

  • VBAでテキストファイルの改行を無視する方法

    VBAでテキストファイルにある文字列を配列の変数に格納したいのですが、改行が含まれているとそこから2バイトずつずれてしまいます。 1行毎に読もうとしても1行の文字列が6000バイトぐらいあるので変数に格納しきれません。 読み込むテキストファイルは _________0_________1_________2・・・・________10 _______100________51 のようになっており、10バイトずつ変数に格納していきたいです(スペースも格納する必要あり) 以下のように作ったのですが、改行のあるところからずれてしまいます。 Sub ファイル読み込み() Dim buf(30000000) As String Dim i As Long i = 0 With CreateObject("Scripting.FileSystemObject") With .OpenTextFile("C:\test.text", 1) Do While .AtEndOfStream <> True buf(i) = .read(10) Loop End With End With End Sub 「次の文字列が改行コードである」ということが分かれば.skipで飛ばせるのですが、その判定式が探しても見つかりません。 どなたかご教授よろしくお願いします。

  • テキストファイルへの書き出し

    ExcelVBAについて教えてください。 Dim path As String Dim FullPath As String Path ="C:\" Dim FN As String FN ="abc.txt" Dim intFF As Integer intFF = FreeFile FullPath = Path & "\" & FN Open FullPath For Output As #intFF Print #intFF, FullPath Close #intFF とやると、Open FullPathのところで、実行時エラー 76、パスが見つかりませんと表示されてしまいます。 やりたいことは、Excel VBAでテキストファイルを新規につくり、そこへ書き出し、保存したいです。ファイル名はFullPathで指定したファイル名を新規で作り出し、それに対して書き出し、保存をしたいです。 何が間違っているのでこのようなエラーが表示されてしまうのでしょうか?回避方法がありましたらご教授お願いいたします。

  • エクセルVBA:テキストデータ(txt)の読込(改行が変なところでされる)

    勉強しながら、エクセルVBAを組んでみたのですが うまくいきません。 テキストデータを以下のようなプログラムで読んだのですが (100行のデータを縦に並ぶように100個のセルの書き出す) 読み込みデータに「↓」で改行されているところでは 「↓」の間は同一行と見なされてしまうのですが どのようにしたら一行で一つのデータと見てくれるのでしょうか? 分かる方がいましたら教えて下さい。 よろしくお願いします。 Sub pon() '*** 変数の宣言 *** Dim filenum As String Dim i As Integer Dim num As Integer, ms As String, cnt As Integer Dim BookName As String, PathName As String Dim ca As String cnt = 1 i = 1 ca = Cells(1, 56) PathName = "C:\" textpath = Dir(PathName & "pon" & ca & ".txt") BookName = Dir(PathName & "pon" & ca & ".txt") Open PathName & BookName For Input As #1 'ファイルを開きます Do While Not EOF(1) Line Input #1, ms cnt = cnt + 1 Cells(1, 57) = BookName 'データの書き出し Cells(cnt, 56) = ms 'データの書き出し Loop Close #1 End Sub

  • テキストファイルから改行コードを削除して読込む方法

    ExcelエクセルVBAマクロについてテキストファイルから改行コードを取り除いて 変数に読み込む方法について確認させてください。 下記のVBAログラムはWordファイルをテキストファイルに落としたファイルを変数aに 読み込んでいます。 このとき、読み込んだテキストファイルはWordファイルをテキストファイルに 落とし込んだファイルなので改行コードが残ってしまいます。 この改行コードを削除したうえで変数aに読み込みたいのですが可能でしょうか。 改行コードはメモ帳では「↓」と下矢印に似た文字で表示されます。 (実際には下矢印ではないようです。) 今のところ、Replace関数で改行コードを削除するプログラムを 考えているのですが、改行コードのVBAでの表現方法が分からないので 先に進むことが出来ません。いい案があればぜひご教授下さい。 あるいはほかの方法でも改行コードが削除出来れば結構です。 またこの変数aに読み込んである文字列からかぎカッコの内部にある文字を 抽出してエクセルの行方向に出力する方法があればご教授頂ければ幸いです。 例えば “あなたは「こんにちは」と言いました。 私は「元気ですか」と聞きました。” が文字列aに読み込んである場合、“こんにちは”、“元気ですか”を抽出して エクセルに順に出力という方法です。 色々と書きましたが、よろしくお願いいたします。 以下、VBAプログラム本文です。 ---------------------------------- Sub sample1() Dim a As String a = CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Readall CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Close End Sub

  • Excel VBAでの固定長のテキストファイル読み込み

    こんにちは。 会社にてEXCELをちょろっとかじっていると言う理由から、あまり触ったことのないVBAを使って固定長のテキストファイルを読み込むプログラムを作るように言われてしまって困っています。 利用している固定長のテキストファイル中の各行の桁数は同一でなく、行によってまちまち。しかし、各行の始めの3ケタはヘッダになっています。 例) ABCTTTTTTTTTTTTTTTTKKKKKOOOOOOPPPPPPPPWWWWWWWWWWWWWWWWWWWWWWWSS XYZLLLLL <ABCとXYZがヘッダ。同じ文字が固定長で決まったあるデータ項目と考えて下さい> もちろん、1ファイルにはもっとたくさんの行がずらずら並んでおります。 中身自体は、ある伝票の内容なのですが、1ファイル中には複数の伝票内容(ヘッダABC~XYZで1伝票)が記されております。 なので、ヘッダで言うとABC,DEF,GHI...XYZとなってまたABC~が続く。 しかも、ある伝票では途中存在しないヘッダがあったり、同じヘッダが何回も繰り返されたりするものもあります。 (ABC,DEF,DEF,DEF,GHI..やABC,GHI,JKL..など) これをどうやってEXCELの各セルに貼り付けるかがどう頑張っても分かりません。どうすればよいのでしょうか?

  • VBAで変数に改行を格納した場合

    セルA1に あああ いいい と入れて、 VBAで Dim str As String str = Range("a1") と言うコードを記述して、ステップモードでstrにカーソルを充てると あああいいい と、変数が格納されるのですが、 変数の値は改行されては表示されないのですか? うぃっちウインドウで監視すると、若干空白があるように感じます。 でも私はよくF8で変数にカーソルを充てて今の値を見るのですが 変数に改行があるかどうかは、この方法ではわからないということですか?

  • VBAで改行の入ったデータの正規表現について

    vbaで複数行のデータの一部を抜き出そうと思っています。 下記のようにすると、抜き出したデータの先頭に改行がついてしまいます。 何かいい方法はないでしょうか。 data = "start" & vbCrLf  & "ABC" & vbCrLf & "DEF" & vbCrLf & "GHI" & vbCrLf & "end" Set re = New RegExp re.Pattern = "start((.|\n)*?)end" re.MultiLine = True Set mc = re.Execute(data) For i = 0 To mc.Count - 1 MsgBox m.SubMatches(0) Next i 上記を実行すると vbCrLf  & "ABC" & vbCrLf & "DEF" & vbCrLf & "GHI" & vbCrLf となってしまいます。 ”ABC”から抜き出す場合、正規表現をどう書けばいいのでしょうか。 よろしくお願いします。

  • 100万行位のファイルを出来るだけ速くListBoxに登録したい

    vbCrLfで区切られた100万行位のテキストファイルがあり、 これを出来るだけ速くListBoxに登録するには どのような方法が良いでしょうか。 現在はStreamReaderで変数strに読み込んで、 Dim Data() As String = Split(str,vbCrLf)で配列に読み込み、 ListBox1.Items.AddRange(Data) で登録しているのですが、何分もかかってしまいます。 良い方法がありましたら、ご教示頂けると助かります。

  • VBAの構文

    Access2002を使用しています。 VBAにて、クエリの結果をメール本文に書き出したいのですが 宜しくお願いします。 【使用するクエリ】 クエリ名:果物クエリ(選択クエリ) フィールド項目:日付、注文者、発送先、電話番号、品名、数量 【現在の内容】 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click Dim stDocName As String Dim strsubject As String Dim strmailto As String Dim strmailto2 As String Dim strtext0 As String Dim strText1 As String Dim strText2 As String Dim strText3 As String Dim strText4 As String Dim strText5 As String Dim strtext6 As String Dim strtext7 As String Dim strtext8 As String Dim strtext9 As String strmailto = Me.電子メール_アドレス strsubject = "商品発送のお知らせ" strText1 = Me.氏名 & " 様" strText2 = "いつもお世話になります、第一青果です。" strText3 = "以下の商品を発送致しましたのでご確認下さいませ。 " strtext0 = "---------------------------------" strText4 = "何でも新鮮!" strText5 = "第一青果" strtext6 = "担当:山田 太郎" strtext7 = "mailto:info@808yaoya.net" strtext8 = "http://808yaoya.net" strtext9 = ★ここからクエリ内の「品名」と「数量」を書き出したい!★ ★以下、現在はレポートをエクセルファイルにして添付するようにしている★ stDocName = ChrW(32013) & ChrW(21697) & ChrW(12524) & ChrW(12509) & ChrW(12540) & ChrW(12488) DoCmd.SendObject acReport, stDocName, , strmailto, , , strsubject, strText1 & vbCrLf & vbCrLf & strText2 & _ vbCrLf & strText3 & vbCrLf & vbCrLf & strtext0 & vbCrLf & strText4 & vbCrLf & strText5 & vbCrLf & strtext6 & vbCrLf & _ strtext7 & vbCrLf & strtext8 & vbCrLf & strtext0 & vbCrLf & strtext9, True Exit_コマンド1_Click: Exit Sub Err_コマンド1_Click: MsgBox Err.Description Resume Exit_コマンド1_Click End Sub

専門家に質問してみよう