.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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タイムスタンプの更新の方法2
-
サブフォルダ含むフォルダ内の...
-
Accessのウインドウサイズの固定
-
VBA ファイル名取得
-
EXCEL VBA tif画像のプロパティ...
-
FileDialog オブジェクトでファ...
-
コモンダイアログでフォルダを...
-
AccessからOLEオブジェクト型の...
-
「AccessViolationException」...
-
ファイルを開く時間測定のスク...
-
VB6でUTF-8ファイルの読取りを
-
MAPIコントロールでファイル添...
-
ファイルをドラッグした時にexc...
-
VB.Netソリューションでフォー...
-
動かなくなってしまった古いVBA...
-
VBAでフォルダ内のhtmlファイル...
-
ExcelVBA 文字コード変換
-
ボタンをクリックしてファイル...
-
【ACCESS VBA】アクセスからデ...
-
Long型で表現できないファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaサブフォルダーをワイルドカ...
-
FileDialog オブジェクトでファ...
-
サブフォルダ含むフォルダ内の...
-
ffftpでファイル取得が0バイト...
-
動かなくなってしまった古いVBA...
-
excel マクロ PDF化の際のエラ...
-
VBからExcelファイルを開くとき...
-
「エクセルファイルが開いてい...
-
VBAでフォルダ内のhtmlファイル...
-
複数のワークブックのVBAを変更...
-
ExcelVBA 文字コード変換
-
Wordのプロパティ・総ページ数...
-
「AccessViolationException」...
-
エクセルのVBAで開いている...
-
AccessからOLEオブジェクト型の...
-
VBAで色々な種類のファイルを開く
-
VBAでCSVファイルを読み込もう...
-
VB.net XMLの作成方法 Iniの代替
-
【ACCESS VBA】アクセスからデ...
-
VBA、ファイル名検索から開く、...
おすすめ情報