• ベストアンサー

セル内改行をそんままテキスト出力するには?

セル内で「Alt」+「Enter」で改行されたデータを VBAでテキストファイル(*.txt)に出力したいのですが、 そのままだと、セルの内容が1行になってしまいます。 どのようにすれば、セルで改行したようにテキスト内で改行できるのでしょうか?

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

VbLf を VbCrLf に置換してはいかがでしょう?

その他の回答 (1)

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

No.1のご回答をコード化してみました。 Dim iStr, oStr As String Dim pt As Integer lStr = Cells(1, 1).Value oStr = "" For pt = 1 To Len(lStr) If Mid(lStr, pt, 1) = vbLf Then oStr = oStr & vbCrLf Else oStr = oStr & Mid(lStr, pt, 1) End If Next MsgBox oStr

関連するQ&A

  • Excel 特定のセルだけEnterでセル内改行

    タイトル通りのことなのですが、VBA等を駆使してできないか悩んでいます Excelのセル内改行は通常Alt+Enterなのですが、 使っているシートの一つのセルだけ複数行入れるような大きな所があります。 他のセルでは問題ないのですがここの入力時では、 いつもAltを押しながらでないと改行できない煩わしさが募りまして、 「このセル内に限り」Enterキーだけで改行できるようにしたいのです。 条件としてはあくまでこのセルのみで、形を崩さずにできることが望ましいです。 この入力セルは他シートから参照されているため 複数行のセルに分割したり、テキストボックスに置き換えることは難しいです 色々探した挙句、Application.MoveAfterReturn など VBAを駆使して考えてみたのですが 手詰まりになってしまいました。 何かできる方法はありますでしょうか?

  • Excel VBAで改行を含めたセルのコピー

    Excel VBAにて、任意のセルを他のセルにコピーするコードを作成しています。 コピー元になるデータが、Alt+Enterで改行を伴ったデータとなっており、 これを.copyにてデータを送ると、改行が無くなった(連結された)表示となります。 一度そのセルをダブルクリックにて操作し、再びEnterを押すと、改行された状態に戻りますが、これを最初から改行されたままのコピーとしてデータを渡すことは可能でしょうか?

  • バッチでテキストを出力したときに改行ができない

    バッチファイルでテキストを出力するのですが、改行ができません echo 一行目 > C:\temp.txt ? echo 二行目 >> C:\temp.txt として結果C:\temp.txtファイル内に  一行目  二行目 ではなく  一行目  二行目 としたいのですが、、 ?にはいるものがわかりません。 echo " " >> C:\temp.txt としても""が入ってしまうし echo   >> C:\temp.txt (全角スペース)を入れても"ECHO は <ON> です。"とメッセージが出てしまいます。 わかる方お願い致します。

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • インポートしたシートのセル内の改行

    初めての質問です。 EXCELのワークシートをACCESSにインポートしました。 列見出し(フィールド)は 日付 内容A 内容B で、内容A,B共にセル内で改行(alt+enter)しています。 これらをACCESSにインポートすると データ内での改行が保持されていません。 レポートで印刷する際に見易さがほしいので データ内で改行させたいのです。 VBAは、少しわかります。 どなたかよろしくお願いします。

  • VBAを使って一つのセル内で文書を改行

    現在VBAを使ってシート1の内容をシート2にコピーさせるもの作りました。↓ s.Cells(r, 1).Copy Sheets("Sheet2").Range("A1") これでさらにシート2にコピーしたないようは 同じセル内で改行したいのです。 いわばAlt+Enterキーみたいな機能なのですが・・・ つまり出力がシート1の指定セルの内容が 『新年あけましておめでとう』なのですが、シート2は 『新年あけまして  おめでとう』という内容を出力したいのですが、 改行のプログラムはわかりますでしょうか??m(_ _)m 簡単なプログラムでもいいのです。 もしわかれば他にも応用したいので、この例で行くと『て』という文字を判別して『て』という文字があったらその文字のあとを改行させたいのですができますでしょうか?

  • 【Excel 2003】 折り返しとセル内での改行

    こんにちは。 類似の質問を見つけられなかったので投稿させていただきます。 以下の方法をご教授ください。 「折り返してセルの全体を表示される」のチェックを外した際に alt + Enter での改行(等)が無視されてしまうことを防ぎたい。 これは以下の手順で再現します。 (1) 「折り返してセルの全体を表示される」ボックスのチェックが 無い 状態でセルの列幅を越える文字数を入力します。 → この時点では、右隣のセルまで文字は侵入していますが、表示されます。 (2) 次に、(1)で書いた文字列の最後尾で alt + Enter を入力し、セル内改行を行います。 (3) そのセル内の2行目に再度セルの列幅を越える文字数を入力します。そしてそのセルの編集を終えます。(Enter押下) → すると自動的に「折り返してセルの全体を表示される」が適用されるようで(これも納得はいかないのですが。。)、強引にセルの列幅に合わせられる形で全体が表示されます。 (4) しかたないので、改めて上記で編集してきたセルの書式設定から 「折り返してセルの全体を表示される」ボックスのチェックを外します。 → すると今度は、alt + Enter の改行が無かったかのように1行で表示されます。 ※ 但し、数式表示ウィンドウ(fx)では問題なく改行された状態で表示されます。 この問題の解決方法をご教授願います。 なおこの事象は、改行を含むテキストデータのコピー&ペーストでも同様に発生します。 宜しく御願いします。

  • Exselのセル内改行について

    こんにちは。困っているのでどなたか助けてください! 一つのセルの中で[Alt]+[Enter]で改行出来ますよね? んで、セルの高さをダブルクリックで調整すると、2行3行入っているセルが1行になってしまうんですよね。もちろんセルの中には1行どころではなく、 もっと多くの行が入っているのですが、どうして、ダブルクリックで高さを調整出来ないのでしょうか?? どなたかお分かりになる方、ご教授願います!!

  • 改行されたテキストをエクセルにセルに分けて移すには

    改行されたテキストをコピーしてエクセルに貼り付けるとひとつのセルにまとめて入ってしまいます。 テキスト文書の改行ごとにセルに分けて移すにはどうしたらいいのでしょうか。 2000 2001 2002 などをExcelのセルに行をわけて移したいのですが

  • ワークシートの内容をテキストファイルに書き込む際に、テキストファイルでは改行が”↑”と表示されるだけで困っています

    エクセルのデータをテキストファイルに出力させたいのですが、テキスト出力の際に"↑"が表示されるだけで改行がうまくできません。 マクロの組み方でアドバイスをいただけないでしょうか? ------------------------------ <↓具体的に、、、、。> ・エクセルデータは、同一セル内に改行させたデータがあります。      列A   列B   行1 No,1  1-111111              1-1111       行2 No,2  2-2222    ←セル"B1"と"B2"のデータを     2-22222    テキストでも改行させて表示したい。 ・テキストでは、下記のように出力させたい ◆No,1 1-111111 1-1111 ◆No,2 2-2222 2-22222 ---------------------- <↓私が試しているコードです。> 'Test.txt 開く Open "C:\Test.txt" For Output As #File_Number '列Aのセルに空白文字列が入るまで、処理を繰り返す i = "3" Do While Worksheets("sheet1").Cells(i, 1) <> "" Print #File_Number, "◆" & Cells(i, 1) Print #File_Number, Cells(i, 2) i = i + 1 Loop 'Test.txt を閉じる Close #File_Number このマクロだとテキストでは ◆No,1 1-111111↑1-1111 ◆No,2 2-2222↑2-22222 となります。 アドバイスの程、よろしくおねがいします。

専門家に質問してみよう