Dir()を使用して、現在のディレクトリ(つまり、使用しているブックと同じディレクトリ)にファイルが存在するかどうかを調べる練習を行っています。コード与えられた - と明らかにビデオの例で作業が - このようなものです:私はこのコードを実行するとExcelのVBAディレクトリ()のデフォルトパスは?
IsThere = (Dir("SomeFile.xlsx") <> "")
、IsThereはFalse
を返します。私が使用して、それを回避することができます。
IsThere = (Dir(ActiveWorkbook.Path & "\SomeFile.xlsx") <> "")
が、私は予想通りdirは現在のディレクトリにデフォルトでは見ていない理由を知りたいです。
私はこれに関する適切なアドバイスを見つけるのに苦労しています。私がDir()を使う方法の例のほとんどは、指定されたファイルパスを持っているので、私の問題で本当に光るものではありません。私が見つけた最も近いと言うthis (obsolete) MSDN reference次のとおりです。
が正しく実行するには、Dir関数は、FileIOPermissionの読み取りとPathDiscoveryフラグが実行コードに付与することが必要です。
トラブルがあり、私は本当にthisは、おそらく私の問題に最も近い、StackOverflowのためとして1
にPathDiscoveryを設定する方法についてはそこにリンクされアドバイスを理解していない - これは、指定を使用していますが、ネットワークの場所を参照しているではなく、です。 の回答〜this questionは、Dir()が期待通りの方法で動作するはずです(完全な指定パスではなく単純なファイル名で動作するはずです)。
ここでの答えは、特定の場所のファイルをテストしてから、 'Dir()'の呼び出しにパスを含める場合です - 例えば 'Dir(" test.xlsx ")' –