アプリ版:「スタンプのみでお礼する」機能のリリースについて

.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

A 回答 (4件)

ファイルがあるかどうかは 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などで どのようなメソッドやプロパティがあるのかを調べましょうね
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。
今後はMSDNなども調べさせていただきます。
ありがとうございました。

お礼日時:2008/05/20 10:25

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
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。
こちらでもVBSとVBAがわかっていなくて申し訳ございません。
今回はありがとうございました。

お礼日時:2008/05/20 10:26

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

この回答への補足

ご返事ありがとうございます。
早速試してみたのですが「dir」の部分で
「型が一致しません。」とエラーがでてしまいます・・・。

補足日時:2008/05/19 17:34
    • good
    • 0

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と同様にエラー画面を出さないようにしたいのでどのような記述をしたらよろしいでしょうか。

補足日時:2008/05/19 13:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!