とりにくを好きな人がVBAを勉強しています。

VBAを中心に、その他日々の生活で感じていることを書いていきます。

【VBA】Dir関数を調べた日のこと

おはようございます。こんにちは。こんばんは。とりにくVBAです。

ブログ開設から169日経っているようですが、2記事目の投稿です。

 

Dir関数について調べました

仕事でフォルダ構成のみをコピーしたいと思って、以前に書籍で勉強したコマンドプロンプトを使った方法を試してみたのですが、外付けHDDだとパスがどうのこうのとうまくいきませんでした。

 

そこでVBAでなんとかできないかと調べて、Dir関数に行き着いたわけです。

 

検索して上から順番に見ていくと、Dir関数を使えばいいのはわかったけど、コピペしても思い通りにならないし、どういじったらいいかわからなかったというのが正直なところです。

 

今までやったことなかったのですが、リファレンスで調べてみたら少しわかってきました。


docs.microsoft.com

Dir関数を試してみた

なにはともあれとりあえず試してみました。

dim test as string
test = dir("")
print.debug test

とりあえずこれでどうなるかなあと思ったら、

20190504_************_iOS.jpg

なんかiphoneの写真でてきました。
どこの、なに、ですか?と思ったら、ドキュメントに保存してあるファイルでした。


ほー、空文字でいくとドキュメントにいくのね。


ドキュメントの中の他のヤツをとってくるにはどうするの?ととりあえずこちらを試しました。

dim test as string
test = dir("")
print.debug test
test = dir("")
print.debug test

同じこともう一回やるという…
このあたりでセンスないのは自分でもわかってはいるのですが。
結果はそのとおりiPhoneの写真が二回でてきましたよ。



次のファイルを取得するには

Dir関数について検索すると、こんな書き方がでてきます。

test = Dir()

これがなんなの?と感覚的に思っていましたが、どうやら知っていないと感覚的にはとらえられるものではなかったようです。

Dir は、pathname に一致する最初のファイル名を返します。 pathname に一致する追加のファイル名を取得するには、引数なしで Dir を再度呼び出します。 一致するファイル名がなくなると、Dir は長さ 0 の文字列 ("") を返します。 長さ 0 の文字列が返された後の呼び出しで、pathname を指定しないとエラーが発生します。

ちゃんと調べると書いてあるのね…
これからはブログの記事だけじゃなくて、リファレンスも見てみることにします。


なるほど、繰り返し処理と分岐処理を組み合わせればいろいろな取得の仕方ができそうですね。

終わりに

さて、今回はDir関数について調べてわかったことを書いてみました。
実際、フォルダ構成をコピーするまではいたっていないわけですが、入り口にたったような気がしています。

いろいろ他にも気になることがあるので、試してみてまた記事にできたらいいなあと思います。
次回はもっと早い間隔で投稿できるようにがんばります。




(お願い)
このブログは自分なりにわかったことを投稿しています。
はっきり言って最適解は提示できません。そんな知識はございません。
もし、記事を読んでいて間違った解釈をしているときやすごく回りくどいことをしている場合はご指摘ください。
また、他の方法があるよ!やこういう便利なやり方もありますよ!的な意見はものすごくありがたいです。