• ベストアンサー

Excel VBS、ADODB.Streamで改行

助けてください。 Excel VBAでテキストファイル出力をしているのですが、改行をどのように書き込めばいいのかわかりません。 ネットで調べても、改行コードを設定できる情報ばかりで、改行自体を書き入れる方法がわかりませんでした。 \n \r\n などと入力しても文字列としてそのまま出力されていまいます。 Windows 7 64 bit Excel 2007 書き出すファイルが UTF-8 のため、普通の出力ではなくADODB.Streamを使っています。 よろしくお願いします。

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

  • ベストアンサー
noname#189141
noname#189141
回答No.1

vbCrLf か CHR(13) を文字列にくっつけてください。

tuktukrace
質問者

お礼

ありがとうございます。 そういえば・・・そうでしたね。たすかりました。

関連するQ&A

  • ADOとADODB.Streamって同じものですか

    アクセスでデータベースにつなぐためにADOは良く使いますが ググってるとADODB.Streamがヒットする時が多々あります。 ADODB.StreamはADOと同じようなもの(データベースに接続する系)なのでしょうか? でもさらっと見てると文字コードを変換したり テキストにデータを書き込む記載が多いのですが、ADOとは別物ですか?

  • ADODB.Streamを使って新規にファイルを作

    ADODB.Streamを使って新規にファイルを作成することは可能ですか? --------------------------------------------- Sub test1() Dim n As Long n = FreeFile Open "C:\sample.html" For Output As #n Print #n, "テキスト" Close #n End Sub これで、新規にhtmlファイルを作れるのですが --------------------------------------------- Sub test2() Dim st As Object Dim Sample As String Set st = CreateObject("ADODB.Stream") オブジェクトに保存するデータの種類を文字列型に指定する st.Type = adTypeText 文字列型のオブジェクトの文字コードを指定する st.Charset = "UTF-8" st.Open 'オブジェクトのインスタンスを作成 st.WriteText Sample, adWriteLine 'ココでエラー オブジェクトの内容をファイルに保存 st.SaveToFile ("c:\sample.html"), adSaveCreateOverWrite オブジェクトを閉じる st.Close メモリからオブジェクトを削除する Set st = Nothing End Sub --------------------------------------------- この方式で新規にファイルを生成して保存することは可能ですか? 該当部分でエラーが発生します。

  • Adodbの改行コードについて

    お世話になります。 クライアントにAccessが無いのでAccessモドキを作るのが目的で CSVを読み込み編集しCSVを書き出すhtaを作成しているのですがAdodbで躓いてしまいました。 読み込んだCSVの仕様に準拠して書き出すのですが、 どうしても改行コードが上手く出力出来ず悪戦苦闘中です。 WriteTextで行区切り文字を指定していますが 指定していないとLFが出力されており、 現在の指定でもCRLFの後にLFが吐き出されています。 LFが邪魔で仕方ないのですが必ず出力されてしまうものなのでしょうか? 回答お待ちしております。 CSVの仕様 ・UTF-8 ・セル内改行コード:LF ・行区切り:CRLF ・全セル「"」括り 書き込みデータ ・配列:textArray (「"」括り、「,」区切り済み、1要素1レコード) /* * @param file : ファイルフルパス * @param textArray : 書き込み配列 * return boolean : 成功判定(失敗時エラーコード) */ function adodbLineout(file, textArray){ try{ var adbStrm = new ActiveXObject("ADODB.Stream"); adbStrm.Charset = 'UTF-8'; adbStrm.lineSeparator = -1; for(i=0;i<textArray.length;i++){ if(textArray[i] == ""){continue;} adbStrm.WriteText(textArray[i], 1); } adbStrm.SaveToFile(file); adbStrm.Close(); return false; }catch(e){ return e; } } 因みに疑似システムはマクロで既に組み上げていたりするので 「Excelで作れ」など別システムの推奨はご遠慮下さいませ。 (読み込みファイルはそのExcelで作成しています。)

  • ADODB.Streamで開いたファイルに追記する

    VBScriptでCSVファイルをADODB.Streamを使って開き ファイルの最終行に1レコード追加する処理を行いたいのですが、 開く際に"追記"を指定することはできないようです。 (FileSystemObjectでは開く際に"追記"を指定することが出来ますが) CSVファイルの形式がUTF-16BEであるため ADODB.Streamを使用して開きます。 どのようにすれば追記が可能でしょうか?

  • 改行コードについて

    phpで開発をしています。 テキストファイルに文字列を出力する際に、改行コードを扱う以下のような場合について、 ①$str='ab\ncd'; ②$str="ab\ncd"; ①の変数の内容を出力すると\nがそのまま出力されます。 ②の変数の内容を出力すると改行されて出力されます。 質問ですが、この二つの違いについては、 ①のときは\nという文字として出力された。 ②のときは改行コードとして出力された。 (バイトコードで見ると、二つのコードは違っている?) という認識で良いのでしょうか。 ご教示いただけますと幸いです。

    • ベストアンサー
    • PHP
  • エクセルでALT+改行した←の文字をEUCで表すと何になりますか?

    エクセルで、ALT+リターンを押すと改行したファイルを TSVで保存しテキストエディタで見ると ←の文字になりました。 Beckyメーラでもたまに見かけます。 普通の改行は\r\nですが、 ←の改行は、EUCではどういう文字コードになるのでしょうか?

  • VBSで特定の文字で始まるファイルを開く

    VBSで"ADODB.Stream"オブジェクトを作成した場合、 LoadFromFileで開くファイルを指定するものだと思いますが、 このとき、特定の文字で始まるファイルを開く場合 どのように指定すれば良いのでしょうか? Set iSt = CreateObject("ADODB.Stream") ist.Charset = "UTF-16BE" ist.Open ist.LoadFromFile(?) オブジェクトがFileSystemObjectであれば *を使用してファイルを開くことができたのですが、 文字コードが"UTF-16BE"であるため ADODB.Streamを使うよう制限されています。

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

    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

  • (VBS) テキストファイル読込での改行コード

    VBAからVBスクリプトへの移植作業をしています。 テキストファイル中に改行コード \r\n と \n が混在しているのですが、 \r\n までを1行として取得したいです。 VBAだと Line Input で取得できたのですが、 VBScriptの場合、FileSystemObject.OpenTextFileで開き .ReadLine で読み込むことになりますが、 ReadLineは \n も行の終端とされてしまい、本来1行のデータが複数行に分かれて読み込まれてしまいます。 .ReadAllで一旦すべてを取得してから Split("\r\n") で分割するという方法は ファイルサイズが膨大だと負荷が掛かるので避けたいです。 \n は、これはこれでデータとして必要なので、削除することはできません。 負荷が掛からず、良い方法があればご教授頂きたく思います。 よろしくお願い致します。

  • 改行コードについて

    ファイルの文字コードはutf-8で改行コードはLFです。 メール送信時にメール文面の一部にいれるテキストを mysqlに保存しています。 メール送信のソース内でデータを読み込み送信までは できているのですが改行コードを変換したく $msg = str_replace("\r\n", "\n", $msg); とやってみましたが改行されず普通に\r\nと表示され うまく変換ができません。 いろいろと試した結果以下のソースでは正常に改行されました。 $msg = str_replace("\\r\\n", "\n", $msg); メール送信前にデバッグでしてみましたが読み込むデータの 改行部分は\r\nとなっているのは確認済みです。 \を多くつければ改行はできるようなのですがこれは仕様なの でしょうか? またmysqlに入れてあるデータはフォームから入力し登録 しているのですがLFの改行コードは\nなので登録時に\r\nではなく \nと変換してからmysqlに登録するのがいいものなのでしょうか?

    • 締切済み
    • PHP