
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
このQ&Aを見た人はこんなQ&Aも見ています
-
ADODB.Streamで開いたファイルに追記
その他(プログラミング・Web制作)
-
ADODB.Streamを使用してUTF-8を出力
Visual Basic(VBA)
-
「VBScript」ADODB.Streamにおけるファイル読み込みについて(他
Microsoft ASP
-
-
4
エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの
Excel(エクセル)
-
5
VBAで複数のCSVからレコードセットを作りたい
Access(アクセス)
-
6
VBSでソート&ファイル分割
その他(プログラミング・Web制作)
-
7
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
8
VBAでCSVの1行目だけを書き換える方法
Excel(エクセル)
-
9
Microsoft VBAで2GBを超えるファイルサイズのバイナリデータを読み込みたい。
Visual Basic(VBA)
-
10
Access schema.ini使用方法について
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード
Excel(エクセル)
-
13
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
binファイルを解凍したいの...
-
リンクの張り付けかたを教えて...
-
アクセス 壊れた? 「ファイ...
-
既にファイルが開いているのな...
-
HTMLからのBATファイル実行
-
エクセルで作ったファイルが突...
-
htaファイルからhtaファイルへ...
-
悪質なスクリプト
-
バッチ処理で追記コピーしたい
-
<Script Language="VBSCRIPT" R...
-
監視ツールを入れさせられまし...
-
ヘルプファイルの作り方
-
CSSファイルの日本語コメントが...
-
Wordファイルのアイコンの違い
-
WORD 複数ファイル 総ページ...
-
『最近使ったファイル』の順番...
-
jarファイル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
jarファイル
-
「ブルーファイル」と「グリー...
-
ファイルが開かれているかどう...
-
バッチ処理で追記コピーしたい
-
VBAのバイナリ出力について
-
公文書のxmlファイルの開き方が...
-
コマンドプロンプトで、指定し...
-
監視ツールを入れさせられまし...
-
自分で作成した重要ファイルを...
-
HTMLからのBATファイル実行
-
VBSが起動しない
-
他のMDBのマクロを実行する方法
-
Batファイルをバイナリ形式にす...
おすすめ情報