- ベストアンサー
VBSでファイル作成後、書き込みできない
- ファイルが存在している場合は、ファイルをオープンして書き込み、ファイルが存在していない場合は、ファイルを作成後、オープンして書き込みを行わせたいと考えています。
- しかし、ファイルが存在していないとき、ファイルは作成されるのですが、『エラー:800A0046 書き込みできません。VBScript実行時エラー』が出て、書き込みができません。モードをWritingにしても同じでした。
- お手数をおかけしますが、ご教示いただけますようお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Option Explicit '■ オブジェクトの宣言 Dim objFSO Dim objFile '■ 定数の宣言 Const strFileName = "C:\VBS\TEST.TXT" '■ 定数の宣言 '// ファイル入出力モード(8:追加書き込み) Const ForAppending = 8 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strFileName) Then WScript.Echo "ファイルが見つかりました" '// ファイルのオープン Set objFile = objFSO.OpenTextFile(strFileName, ForAppending) ' ★ ここ ← Else WScript.Echo "ファイルが見つかりませんでした" Set objFile = objFSO.CreateTextFile(strFileName) If IsObject(objFile) Then WScript.Echo "ファイルを作成しました" Else WScript.Echo "ファイルを作成できませんでした" WScript.Quit (1) End If End If ' ' ★ ここではなくて ↑ ↑ objFile.WriteLine "2012/12/21,100,ブレーキパッド,35000"
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
ファイルを作成後、再度開くならば、 If IsObject(objFile) Then WScript.Echo "ファイルを作成しました" objFile.Close <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< この一文を追加 Else WScript.Echo "ファイルを作成できませんでした" WScript.Quit(1) End If End If '// ファイルのオープン Set objFile = objFSO.OpenTextFile(strFileName,2,1) <<<<< 引数はこんな感じ (引数は目的に応じ変更)
- notnot
- ベストアンサー率47% (4900/10358)
CreateTextFileは、単に作成じゃなくて、作成して書き込みオープンなので、そのまま使うか、いったんクローズするかしてください。
お礼
ありがとうございます。 ご教示頂きました箇所の修正を行い、ファイルがある場合、追加書き込みを行い、ファイルがない場合は、作成して書き込めることを確認できました。 ログファイルでの使用を考えており、ファイルがある場合は、ログメッセージを追加書き込み、ファイルがない場合はファイルを作成して、ログメッセージを書き込む目的で考えていました。