Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8614 / 13645 ツリー ←次へ | 前へ→

【32183】ファイル操作 迷える子羊 05/12/8(木) 15:19 質問[未読]
【32185】Re:ファイル操作 Blue 05/12/8(木) 15:40 回答[未読]
【32188】Re:ファイル操作 inoue 05/12/8(木) 16:19 発言[未読]
【32202】Re:ファイル操作 ichinose 05/12/9(金) 8:35 発言[未読]
【32287】Re:ファイル操作 迷える子羊 05/12/12(月) 11:07 お礼[未読]

【32183】ファイル操作
質問  迷える子羊  - 05/12/8(木) 15:19 -

引用なし
パスワード
   VBA初心者です。

VBAでテキストファイルの操作を行おうと思っています。
OpenTextFile、OpenAsTextFile 等では上書きか、追記しかできないと
ありました。
-------------
1 aaa ADD
2 bbb DEL
3 ccc MOD
-------------
上記のようなファイルの2行目「2 bbb DEL」を変更したいのですが、
VBAでは読み書きモードのファイルオープン、
中間データの書き込み などはできないのでしょうか?

【32185】Re:ファイル操作
回答  Blue  - 05/12/8(木) 15:40 -

引用なし
パスワード
   ▼迷える子羊 さん:
>VBAでは読み書きモードのファイルオープン、
>中間データの書き込み などはできないのでしょうか?
おそらく、できません。
一行ずつ読み込んで、別ファイルに出力し、任意の文字列を変更して出力してから、
リネームすることになると思います。
(それかメモリ上に一気に読み込んで、同じファイルを書き換えるか)

【32188】Re:ファイル操作
発言  inoue E-MAILWEB  - 05/12/8(木) 16:19 -

引用なし
パスワード
   1行当たりの文字数(バイト数)が一定だという条件なら、
Open,Get,Put等のステートメントでランダム処理できますが、
行ごとに長さが違うなら不可能です。

【32202】Re:ファイル操作
発言  ichinose  - 05/12/9(金) 8:35 -

引用なし
パスワード
   皆さん、おはようございます。

>一行ずつ読み込んで、別ファイルに出力し、任意の文字列を変更して出力してから、
>リネームすることになると思います。

とBlueさんがおっしゃっている方法が定番だと思いますよ!!
処理中にPCに何かあってもデータの破損確率が低そうですよね!!

【32287】Re:ファイル操作
お礼  迷える子羊  - 05/12/12(月) 11:07 -

引用なし
パスワード
   みなさま

ありがとうございます。
元々、別ファイルに書き出して上書きという方法を取っていたのですが、
マスタファイルで複数のアクセスの考慮をしなければならないため、
「書き込み」の方法を模索していました。
(ExcelVBAで実現するのに無理があることを重々承知の上で。。。)

inoue様から教えていただいた、put,getでなんとか
できそうです。固定長でなかったのですが、
固定長としちゃいます。

8614 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free