2009-06-10 36 views
14

一般的にVBA現在のユーザーアプリケーションのデータフォルダへのパスを取得する方法は?

VBAを使用すると、現在のユーザーのアプリケーションデータフォルダの場所はどのように判断できますか?

特別なフォルダはたったの約3フォルダ

  • WindowsFolderは
  • SystemFolder
  • TemporaryFolder

は、具体的には、私はWordのマクロが下のフォルダにファイルをコピーする必要があります知っているFileSystemObjectsアプリケーションデータフォルダー。

VB.Netでこれを行うにはMy.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationDataを使用することができます

答えて

26

このパスを取得するにはEnviron("AppData")を使用できます。 Environは、DOSプロンプトでsetコマンドを使用して見つけることができるシステム変数をプルします。 advapi32.dllを使用して

+0

私は決して環境文字列をチェックすると思った、これは、おかげで、おかげで動作します:) –

+1

環境変数がユーザーによって変更され、予期せぬ結果につながる可能性があるため、Environ()アプローチは信頼性が低いと思います。 Windows APIを使用するほうが良いかもしれません。 Documents/My Documentsフォルダを見つける例を以下に示します:http://dailydoseofexcel.com/archives/2009/02/26/get-the-path-to-my-documents-in-vba/#comment-38211 AppDataフォルダのためにそれを行う方法を見つけることができます。これは、より良い方法です。 – authentictech

7

、あなたは

CStr(Environ("USERPROFILE") & "\Application Data") 

欲しいものを得るために(標準を持って、特定の名前)、「アプリケーションデータ」ディレクトリにUSERPROFILEこの接続

Environ("USERPROFILE") 

経由を得ることができます詳細については、チェックアウト MSDN

関連する問題