
VBSでファイルを操作する処理を書いています。
1回目のループでtest1.txtファイルを開いて追記Aを行い、2回目のループでまたそのtest1.txtファイルを開いて追記Bを行って上書き保存しているのですが・・・
2回目に開いてファイルに保存した後、保存したファイルが「ループ開始前の状態に対して追記Bのみをされた状態になっている」のです。
ループ中に変更された内容が無視されている、というイメージです。
VBSのループはこういうことが起きるのでしょうか?batファイルのループでは、特別な宣言をしておかないと、ループ内で変数を更新してもループを抜けるまで反映されていない、ということがありました。vbsのループでファイルを扱う場合も、似たようなことが起きるのでしょうか?また、対策はあるのでしょうか?
No.1ベストアンサー
- 回答日時:
>>vbsのループでファイルを扱う場合も、似たようなことが起きるのでしょうか?
あー。
自信ないのでノーコメント。
似たような経験はあります。程度にしておきます。
>>また、対策はあるのでしょうか?
sleep
コマンドが使えたかと。
何かしら、時間がかかりそうなイメージの箇所。で、sleepで、スクリプト処理の一時停止。
で、とりあえず対応できる。。。とは思います。
。。。wsfか?
まぁ、最悪、
i = 0
while i < 100000000
i = i + 1
roop
のような、無意味なループさせて、時間稼いで、疑似的にスクリプト処理の方をとめておく。
ってのも手ですが。。
この回答への補足
・・・
すみません、ちょっとした書き間違いで、ループ中に更新したファイルも正常通り動いていました。
解決、というか、もとから問題ありませんでした。
ありがとうございます。
ExcelのVBAに貼り付けてウォッチしてても同じ現象が起きます。
なので十分な時間を確保していると思うんです。
で、書いていて思いましたが、
1つのループで2回の更新をするんじゃなく、2回目の更新は、いったんそのループを抜けてから次のループでやるようにテストしてみます。これで改善されたら同一ループ内で更新が反映されないという結果になると思います。
わかったら追記します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA横データを縦にしたいです
-
VBAでの一時停止と再開の方法
-
UWSCに制限時間を付けたいです
-
テキストボックスの名前に変数...
-
C言語でファクト関数を使わずに...
-
xmplayの使い方
-
ループフリー
-
Do whileでExitせず、ループの...
-
csh foreachで「*」でエラ...
-
CやJAVa,Rubyなどプログラミン...
-
GIFアニメをループさせたくない
-
CSVファイルの特定の行だけを読...
-
エクセルの当番表を作っていま...
-
C#で別のフォームのprogress ba...
-
vb.netからエクセル関数書き込み
-
Excel VBAでIf 条件式 then か...
-
Dim flag(4) as boolean で配列...
-
Strawberry Perl for Windows ...
-
エクセルVBAでTransposeの不思議
-
マクロ Publicでの配列定義
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
VBAでの一時停止と再開の方法
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
イベントの発生を待つ
-
流れ図(フローチャート)が分か...
-
UWSCに制限時間を付けたいです
-
vb.netです。2次元配列の要素を...
-
VBA for i=1 to lastrow
-
DoEventsが必要な理由について
-
ループフリー
-
VBA Boxが空白の場合のメッセー...
-
VBA ニュースタイトル取得
-
エクセルの当番表を作っていま...
-
Javaの質問です。 この問題の答...
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
おすすめ情報