• ベストアンサー

VBAでIf~Thenに条件をもう1つ

 以下のようにExcelのVBAでタイムスタンプを比較するところがあるのですが、比較ファイルがないものがありますその場合もthen以降を実行するには、どうすれば良いのでしょうか? If FileDateTime(Mydoc) > FileDateTime(Mydoc2) Then MsgBox "Mydoc" End If   ここで、Mydoc2が存在しないときも、MsgBox "Mydoc" を実行したいのですが。  ちなみに、Mydoc2のタイムスタンプが新しいときは、飛ばして次の命令文に進みます。  wかりにくい質問ですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

> この場合でも、Mydocが新しい場合も、Mydocに当てはまるファイルがない場合も、Mydocと表示されるわけですね。 そうですね。 エラーになった場合は強行されてしまうので、 if dir(Mydoc) <> "" then ~処理 end if などとすると良いと思います。

dogs59
質問者

お礼

 ありがとうございます。  下のお礼の欄が誤記でした。  Mydoc2がない場合でもですね。  教えていただいたもので、テストしてみます。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Mydoc2が存在しないときも ファイルの有無はDir関数でチェックできます。 If FileDateTime(Mydoc) > FileDateTime(Mydoc2) or dir(Mydoc2) = "" Then ただし、このままでは FileDateTime(Mydoc2) がエラーになるので、おまじないです。 On Error Resume Next If FileDateTime(Mydoc) > FileDateTime(Mydoc2) or dir(Mydoc2) = "" Then MsgBox "Mydoc" end if

dogs59
質問者

お礼

 早速の回答ありがとうございます。  この場合でも、Mydocが新しい場合も、Mydocに当てはまるファイルがない場合も、Mydocと表示されるわけですね。  今、手元にテストできる環境がないもので。

関連するQ&A