VBA / VB6 - マイドキュメント+環境変数

「マイドキュメント」フォルダパスには、可変のユーザー名コンポーネントが含まれており、ユーザーごとに異なります。 ユーザー名に関係なく「マイドキュメント」フォルダーにアクセスするためのコードをVBAまたはVB6に記述して 、VB6の環境変数を読み取ることができる関数を使用することは可能です。 すべてのプログラミング言語と同様に、VB6またはVBAでコードを書くには、サブルーチン、ループ、および特定のVB6機能を含む基本的なプログラミング概念の知識が必要です。 環境変数の値を受け取るEnviron $などの環境関数は、 VB6で環境変数読み取るためのコードを書くために使用できます。

Windowsエクスプローラに表示されるように、マイドキュメントフォルダはルートにあるように見えますが、そうではありません。 C:\ Documents and Settingsのサブディレクトリにあります。 問題は、このサブディレクトリがユーザーの名前を取り、あるPCから別のPCに変更されるだけでなく、複数のユーザーをサポートするPC上でも変更されることです。

次のコードでは、ログオンしているユーザーに関係なく、デフォルトでマイドキュメントフォルダにアクセスできます。

VBAとは

次のコードを一般的なモジュールに貼り付けるだけです。

明示的なオプション

プライベートタイプ

CBとして

バイトとしてabID

エンドタイプ

プライベートタイプ

SHITEMIDとしてmkid

エンドタイプ

プライベート定数CSIDL_PERSONAL As Long =&H5

プライベート宣言関数SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwnerの長さ、ByValのnFolderの長さ、_

pidl As ITEMIDLIST)として

プライベート宣言関数SHGetPathFromIDList Lib "shell32.dll"エイリアス "SHGetPathFromIDListA" _

長さとしてのByVal pidl、長さとしてのStringとしてのByVal pszPath

文字列としてのパブリック関数Rep_Documents()

Dim lRetを長く、IDLをITEMIDLISTとして、sPathを文字列として

lRet = SHGetSpecialFolderLocation(100&、CSIDL_PERSONAL、IDL)

lRet = 0の場合

sPath =文字列$(512、Chr $(0))

lRet = SHGetPathFromIDList(ByVal IDL.mkid.cb、ByVal sPath)

Rep_Documents = Left $(sPath、InStr(sPath、Chr $(0)) - 1)

そうでなければ

Rep_Documents = vbNullString

終了の場合

終了機能

関数を呼び出すには、ボタンを作成して次のコードを貼り付けるだけです。

Private Sub CommandButton1_Click()

セル(5、2)= Rep_Documents()

終了サブ

VB6とは

VB6では、環境変数UserProfileを使用します(これはVBAでも機能します)。

 文字列として薄暗いsPathUser

sPathUser = Environ $( "USERPROFILE")& "\ my documents \"

MsgBox sPathUser

環境機能

Environ $関数は、環境変数の値を受け取るために使用されます。

たとえば、WINDIRコマンド(Windows)を使用した場合は、Windowsがインストールされているフォルダ(C:\ Windows \)を取得したはずです。

これらの変数は、Runユーティリティを介して、およびVBやVBAなどのプログラミング環境で、バッチファイルで使用できます。

  • %UserProfile%と入力すると、現在のユーザーが参照されます。
  • 「%UserProfile%\ My Documents」と入力すると、My Documentsフォルダが参照されます。
  • %WinDir%と入力すると、Windowsフォルダが取得されます。
  • %tmp%と入力すると、一時ファイルにアクセスできます。

Windowsの変数

  • デフォルトユーザーの変数
    • TEMP一時ディレクトリ
    • TMP一時ディレクトリ
  • システム変数
    • コマンドプロンプトのComSpec変数パス。
    • FP_NO_HOST_CHECK
    • NUMBER_OF_PROCESSORS
    • OS使用中のOSを返します。
    • パス?
    • PATHEXT?
    • PROCESSOR_ARCHITECTUREプロセッサアーキテクチャ(x86など)を返します。
    • PROCESSOR_IDENTIFIERプロセッサIDを返します。
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISIONプロセッサのリビジョン数を返します
    • TEMP一時ディレクトリ
    • TMP一時ディレクトリ
    • Windowsがインストールされているwindirフォルダ。
    • WindowsがインストールされているSystemRootフォルダ。

ご了承ください:

管理者としてログインしている場合は、[コントロールパネル] - [詳細システム] - [環境変数]で変更できます。
前の記事 次の記事

トップのヒント