
.vbsを使用して複数のテキストファイルを1つのテキストファイルに結合したいと思っております。
条件として対象ファイルが0KB及びない場合には追記しない。
結合部分に関しては下記で追記することができたのですが
条件部分に関してはFilelen?を使用するとファイルサイズを取得できるみたいなのですが
実際の記述がわかりませんでした。
ご教授頂けると助かります。
■追記部分
Set logFile = fso.GetFile(logFile)
Set f = logFile.OpenAsTextStream(8, -2)
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objText = objFS.OpenTextFile(srcFile)
myText = objText.ReadAll
'ExecDateTime = Now
f.Write(myText & vbNewLine)
f.close
'解放
Set f = Nothing
Set logFile = Nothing
Set fso = Nothing
No.3ベストアンサー
- 回答日時:
ファイルがあるかどうかは FSOのFileExistsで確認可能ですよ
Set objFS = CreateObject("Scripting.FileSystemObject")
if objFS.FileExists( srcFile ) then
Set objFile = objFS.GetFile( srcFile )
if objFile.Size > 0 then
Set objFile = Nothing
Set objText = objFS.OpenTextFile(srcFile)
myText = objText.ReadAll
'ExecDateTime = Now
f.Write(myText & vbNewLine)
f.close
End if
Set objFile = Nothing
end if
といった具合でいいと思います
# MSDNなどで どのようなメソッドやプロパティがあるのかを調べましょうね
No.4
- 回答日時:
redfox63さんおしゃったとおりです。
VBSとVBA間違いました。DIRはVBAの関数です。Set objFS = CreateObject("Scripting.FileSystemObject")
if objFS.FileExists( srcFile ) then
Msgbox "ファイルがないです"
else
Set objFile = objFS.GetFile( srcFile )
if objFile.Size > 0 then
Set objFile = Nothing
Set objText = objFS.OpenTextFile(srcFile)
myText = objText.ReadAll
f.Write(myText & vbNewLine)
f.close
else
Msgbox "ファイルは0KBです"
End if
Set objFile = Nothing
end if
No.2
- 回答日時:
redfox63さんのコードを基礎に修正しました。
if Dir(srcFile)="" then
Msgbox "ファイルがないです"
else
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile( srcFile )
if objFile.Size > 0 then
Set objFile = Nothing
Set objText = objFS.OpenTextFile(srcFile)
myText = objText.ReadAll
f.Write(myText & vbNewLine)
f.close
else
Msgbox "ファイルは0KBです"
End if
Set objFile = Nothing
end if
No.1
- 回答日時:
FileオブジェクトのSizeプロパティを参照するのではないかと思います
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile( srcFile )
if objFile.Size > 0 then
Set objFile = Nothing
Set objText = objFS.OpenTextFile(srcFile)
myText = objText.ReadAll
'ExecDateTime = Now
f.Write(myText & vbNewLine)
f.close
End if
Set objFile = Nothing
といった具合で出来ると思います
この回答への補足
早速のご返事ありがとうございます。
記載していただきました内容で対象ファイルが0KBの場合は
ファイルに書き込まないようになりました。
ただ、ファイルが存在していない場合に「ファイルが存在しません」と
エラー画面がでてしまいます。
ファイルサイズが0KBと同様にエラー画面を出さないようにしたいのでどのような記述をしたらよろしいでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
excel マクロ PDF化の際のエラ...
-
「エクセルファイルが開いてい...
-
AccessからOLEオブジェクト型の...
-
ffftpでファイル取得が0バイト...
-
VB6でUTF-8ファイルの読取りを
-
ファイルを開く時間測定のスク...
-
Long型で表現できないファイル...
-
VBAでフォルダ内のhtmlファイル...
-
EXCEL VBAを使ったファイル解析...
-
コモンダイアログのファイルを...
-
Accessのウインドウサイズの固定
-
タイムスタンプの更新の方法2
-
コモンダイアログで拡張子の無...
-
ファイルへのハイパーリンクで...
-
vbs ブック共有を解除
-
ファイルをドラッグした時にexc...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
エクセルで複数のコメントのサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
AccessからOLEオブジェクト型の...
-
VBAでフォルダ内のhtmlファイル...
-
VB6でUTF-8ファイルの読取りを
-
サブフォルダ含むフォルダ内の...
-
EXCEL VBAを使ったファイル解析...
-
webブラウザからローカルファイ...
-
「エクセルファイルが開いてい...
-
タイムスタンプの更新の方法2
-
複数のワークブックのVBAを変更...
-
vbaサブフォルダーをワイルドカ...
-
ffftpでファイル取得が0バイト...
-
VBAでCSVファイルを読み込もう...
-
フォルダ階層・ファイル名・ペ...
-
【ACCESS VBA】アクセスからデ...
-
ExcelVBA 文字コード変換
-
excel マクロ PDF化の際のエラ...
-
FileDialog オブジェクトでファ...
-
Wordのプロパティ・総ページ数...
-
Accessのウインドウサイズの固定
おすすめ情報