お世話になっております。 Dir関数でなぜかエラーになり、原因が分かればと思い質問します。 最初はこういうロジックでした。 文書のカテゴリフィールドを見て、その値でフォルダ作成を行い その下の階層に年次フィールドでフォルダを作成するものです。 Const sDefaultPath = "C:\Documents and Settings\All Users\デスクトップ\" If Dir(sDefaultPath & doc.Categories(0), 16) = "" Then Mkdir sDefaultPath & doc.Categories(0) End If If Dir(sDefaultPath & doc.Categories(0) & "\" & doc.Year(0), 16) = "" Then Mkdir sDefaultPath & doc.Categories(0) & "\" & doc.Year(0) End If これを動かすと正常終了します。 ただ、デスクトップ上にカテゴリ名のフォルダが大量にできてしまうので、 デスクトップに"DIGITAL"というフォルダを作ろうと 変更したロジックが以下になります。 Const sDefaultPath = "C:\Documents and Settings\All Users\デスクトップ\DIGITAL\" ☆ If Dir(sDefaultPath, 16) = "" Then Mkdir sDefaultPath End If If Dir(sDefaultPath & doc.Categories(0), 16) = "" Then Mkdir sDefaultPath & doc.Categories(0) End If If Dir(sDefaultPath & doc.Categories(0) & "\" & doc.Year(0), 16) = "" Then Mkdir sDefaultPath & doc.Categories(0) & "\" & doc.Year(0) End If 単に階層を一つ増やし、その階層フォルダを作成するロジックを追加しただけですが ☆のところで"P001 パスがみつかりません"が返ってきます。 なぜここだけNULLではなくエラーを返すのか分かりません。 "DIGITAL"だけを独立した定数にしてつなげても同じでした。 デスクトップではなくCドライブ直下にしても同じでした。 今は☆の行の上にOn Error Resume Nextをつけて無理やり作成してるので 一応動くことは動くのですが・・・納得いかず。 何が原因なのかお分かりになる方、ご教授いただけると助かります。 よろしくお願いします。