【VBA】マイフォルダ(デスクトップ、ドキュメント、ダウンロード)のフルパスを取得する方法
みなさんこんにちは。
VBAを操作しているとマイフォルダ(デスクトップ、ドキュメント、ダウンロード)の
パスを取得する方法を知りたくなるタイミングがあるかと思います。
発生頻度こそ高くないものの、
簡単な内容となるためコードの内容をつい忘れがちになってしまいます。
今回は、備忘録も含めマイフォルダ(デスクトップ、ドキュメント、ダウンロード)のパスを取得する方法についてご紹介します。
この記事はこんな人におすすめ
この記事はこんな人におすすめです!
- VBAプログラミング:初級者~中級者
- Webスクレイピング:初級者~中級者
- コードだけサクッと取得したい人
- 効率の良いコードを書きたい人
といったところでしょうか。
VBAに関する過去の記事
VBAに関する小ワザやテクニックについては過去の記事でもご紹介しております。
今回の記事を読むメリット
マイフォルダのパスを取得する方法を知るメリットは以下の通りです。
- コーディングの基本的なテクニックの習得
- コードの備忘録的な使用
- 基礎的なスキルの定着
といったところでしょうか。
VBAコーダーとしては必ず通る道であり、誰しもが経験するカベかと思います。
且つ忘れたころに直面するかと思いますので、
一度やり方を覚えてしまえばかなり有効的なスキルになるかと思います。
コード紹介
デスクトップ
早速ですがコードについて紹介します。
以下の一文を使用するだけでいたって難しいことはありません。
CreateObject("WScript.Shell").SpecialFolders("desktop")
実装時は以下のように使用します。
Sub GetMyFullPath()
Dim upath As String
'デスクトップ
upath = CreateObject("WScript.Shell").SpecialFolders("desktop")
Debug.Print upath
End Sub
ドキュメント
ドキュメントに関しても同様に以下の一文を使用するだけでOKです。
'ドキュメント
upath = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
Debug.Print upath
ダウンロード
ダウンロードについても同様に、、、と言いたいところですが、
ダウンロードフォルダだけは注意が必要で、以下のような一文を使用しても取得ができません。
CreateObject("WScript.Shell").SpecialFolders("Downloads")
改善点
そのため、「ダウンロード」を取得する前に、一旦「ドキュメント」のパスを取得し、パス内の「Documents」の部分を
「Downloads」(ダウンロード)に置換することで、「ドキュメント」のパスに変更します。
'ダウンロード
upath = Replace(upath, "\Documents", "\Downloads", 1, 1)
Debug.Print upath
デスクトップ、ドキュメント、ダウンロードのパス取得方法
以下のコードを直接コピーして、実装中のコードに付け加えていただければ使用することができます。
Sub GetMyFullPath()
Dim upath As String
'デスクトップ
upath = CreateObject("WScript.Shell").SpecialFolders("desktop")
Debug.Print upath
'ドキュメント
upath = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
Debug.Print upath
'ダウンロード
upath = Replace(upath, "\Documents", "\Downloads", 1, 1)
Debug.Print upath
End Sub
最後に
いかがでしたでしょうか。
ローカルPCのパス(デスクトップ、ドキュメント、ダウンロード)の取得方法は、
とても単純で簡単なのですが、意外とふとした時に忘れがちです。
ですので、しっかりマスターして基本を抑えながらと実装できると業務効率も格段に向上するかと思います。
そのきっかけとして、少しでも参考になればと思います。
開発依頼について
ココナラでWebスクレイピング開発サービスを出品しております。
自分で開発をしようと思ったけど、依頼したり、何か聞きたいことがあったりしたら
いつでもお気軽にご相談ください。
また、本ブログからご依頼いただいた方については割引特典がございますので、
ご不明点と合わせてメッセージをいただけると幸いです。
Excelにてブラウザ操作自動化ツールを作成します その作業、webスクレイピングを使って自動化しましょう!
Webスクレイピング以外にもWebアプリの開発サービスも出品しております。
こちらについても、本ブログからご依頼いただいた方については割引特典がございますので、
併せてご検討ください。
スモールスケールのWebアプリ開発します 先ずはスモールスケールのWebアプリから始めませんか?