
No.1ベストアンサー
- 回答日時:
Option Explicit
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
'UTF-BEと入力し続けて誤りに気づけず、時間を食った。ヒドイです、先生(何。
objStream.CharSet = "UNICODEFEFF"
objStream.type = 2
' Openの第一引数にファイルパスの文字列与えたらエラーが起きて書けなかった。
objStream.Open()
'前述の通り直接ファイルを開けなかったのでファイルの中身を全て読み込むことに。質問者さんの環境ではうまくいくのかなぁ?
'ファイルにはabcと書かれている。
objStream.LoadFromFile("D:\aaa.txt")
'setEOSでうまくいくかと思いきや、Positionが0のままだったので、
'しょうがないからこの方向で。
objStream.Position = objStream.size
objStream.WriteText("def")
objStream.Flush()
'先ほどのファイルaaa.txtに書き込めなかったので
'別ファイルに書き込むことに。
'結果:ファイルが期待通りabcdefに。ねんがんのabcdefをてにいれたぞ!
'質問者さんの環境が俺と同じく、aaa.txtに書き込めないなかったら別のファイルを作る。
'もし、同名のファイルにしておきたかったら、別名ファイルを作っておいて、新しいファイルに書いて
'古い方削除して、新しい方をリネームみたいな手法になるだろうか。
objStream.SaveToFile("D:\aaa2.txt")
'閉じる。
objStream.Close()
'合図がないと実行されたのかよくわからなかったから。
Msgbox("End")
'CSVとして読んだわけじゃないから(あまり考え方としては好きではない。
'文字列データ内に改行があるケースは考えてないし、
'読み込んだ元データの最後に改行がないとかいうケースは考えりゃどうにかなるだろう。
'ただ、本当はExcelやOOo Calcで"CSVとして読みこんで"、マクロで(テキストファイルとしてではなく)CSVとしていじるって方が好き
'この辺は俺が「正規表現でXMLやHTMLのソースをいじる回答に間違いが多い」ことや、
'結果的に「エスケープ」や「ヴァリデート」ではなく「サニタイズ」を考ることの一貫性が取れないことにイライラする
'あたりから来ているんだろうな、多分。
ご回答ありがとうございます。
ファイルの中身はLoadFromFileで全て読み込む方法で良いと思います。
↓この一行でPositionを最後に移動させるのがポイントでした。
objStream.Position = objStream.size
あとはWrite処理を行うことでファイルの最後に
追記することができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ADODB.Streamで開いたファイルに追記
その他(プログラミング・Web制作)
-
「VBScript」ADODB.Streamにおけるファイル読み込みについて(他
Microsoft ASP
-
ADODB.Streamを使用してUTF-8を出力
Visual Basic(VBA)
-
-
4
EXCELのVBAでLenB関数について
Excel(エクセル)
-
5
VBAで複数のCSVからレコードセットを作りたい
Access(アクセス)
-
6
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
7
VBSでソート&ファイル分割
その他(プログラミング・Web制作)
-
8
VBAでCSVの1行目だけを書き換える方法
Excel(エクセル)
-
9
Access schema.ini使用方法について
Excel(エクセル)
-
10
Microsoft VBAで2GBを超えるファイルサイズのバイナリデータを読み込みたい。
Visual Basic(VBA)
-
11
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
binファイルを解凍したいの...
-
#include <Windows.h>というヘ...
-
自分で作成した重要ファイルを...
-
Latexで図番号だけを「図1.1」...
-
マクロを組んだファイルのアイ...
-
コマンドプロンプトで作成日時...
-
reaper音声ファイルについて
-
jarファイル
-
Batファイルをバイナリ形式にす...
-
ストレージにある全てのファイ...
-
exeファイルの中身を見る方法は...
-
エクセルのヘルプファイルって...
-
CSVから指定行だけを読み込み
-
exeファイルが作れない(windows10)
-
C#でログファイルにファイルパ...
-
.NETアプリを作ったときの .man...
-
○○○.zip.001というファイルが開...
-
複数のファイルをパック化して...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
リンクの張り付けかたを教えて...
-
.NETアプリを作ったときの .man...
-
jarファイル
-
コマンドプロンプトで、指定し...
-
「営業秘密の漏洩」について
-
自分で作成した重要ファイルを...
-
warファイルをEclipseでプロジ...
-
公文書のxmlファイルの開き方が...
-
ストレージにある全てのファイ...
-
C言語---ファイルに出力したデ...
-
HTMLからのBATファイル実行
-
ファイルが開かれているかどう...
-
監視ツールを入れさせられまし...
-
「ブルーファイル」と「グリー...
-
バッチ処理で追記コピーしたい
おすすめ情報