VBA / VB6 - Mes documents + Variables d'environnement

Le chemin du dossier "Mes documents" contient un composant nom d'utilisateur variable et passe d'un utilisateur à un autre. Il est possible d' écrire un code dans VBA ou VB6 pour accéder au dossier "Mes documents" quel que soit le nom d'utilisateur, à l'aide de fonctions permettant de lire les variables d'environnement dans VB6 . Comme pour tous les langages de programmation, écrire du code en VB6 ou VBA nécessite la connaissance des concepts de base de la programmation, y compris les sous-programmes, les boucles et les fonctions spécifiques de VB6. Des fonctions d’environnement telles que Environ $, qui reçoit la valeur d’une variable d’environnement, peuvent être utilisées pour écrire un code permettant de lire les variables d’environnement dans VB6 .

Comme indiqué dans l'Explorateur Windows, le dossier Mes documents semble être à la racine, mais ce n'est pas le cas. Il se trouve dans un sous-répertoire de C: \ Documents and Settings. Le problème est que ce sous-répertoire prend le nom de l'utilisateur et est modifié non seulement d'un PC à un autre, mais également sur les PC prenant en charge plusieurs utilisateurs.

Les codes suivants vous permettent d'accéder au dossier Mes documents par défaut, quel que soit l'utilisateur connecté.

Avec VBA

Il suffit de coller le code suivant dans un module général:

Option explicite

Type privé SHITEMID

cb aussi longtemps

abID comme Byte

Type de fin

Type privé ITEMIDLIST

mkid comme SHITEMID

Type de fin

Const privée CSIDL_PERSONAL As Long = & H5

Privé Declare Fonction SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner As Long, ByVal nFolder As Long, _

pidl As ITEMIDLIST) As Long

Privé Déclare Fonction SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl As Long, ByVal pszPath As Chaîne As Long

Fonction publique Rep_Documents () As String

Dim lRet As Long, IDL As ITEMIDLIST, sPath As String

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Si lRet = 0 alors

sPath = Chaîne $ (512, Chr $ (0))

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

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

Autre

Rep_Documents = vbNullString

Fin si

Fonction de fin

Pour appeler la fonction, créez simplement un bouton et collez le code suivant:

Private Sub CommandButton1_Click ()

Cellules (5, 2) = Rep_Documents ()

End Sub

Avec VB6

Sous VB6, utilisez la variable d’environnement UserProfile (cela fonctionne également avec VBA):

 Dim sPathUser as String

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

MsgBox sPathUser

Fonctions d'environnement

La fonction Environ $ est utilisée pour recevoir la valeur d'une variable d'environnement.

Par exemple, lorsque vous avez utilisé la commande WINDIR (Windows), vous avez obtenu le dossier dans lequel Windows est installé (C: \ Windows \).

Ces variables peuvent être utilisées dans des fichiers de commandes, via l'utilitaire Exécuter et dans un environnement de programmation tel que VB et VBA.

  • Taper% UserProfile% fait référence à l'utilisateur actuel.
  • Taper% UserProfile% \ My Documents "fait référence au dossier Mes documents.
  • Taper% WinDir% obtient le dossier Windows.
  • Taper% tmp% vous donne accès à des fichiers temporaires.

Variables Windows

  • Variables pour l'utilisateur par défaut
    • Répertoire temporaire TEMP
    • Répertoire temporaire TMP
  • Variables système
    • Chemin ComSpec variable pour l'invite de commande.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS Retourne le système d'exploitation utilisé.
    • Chemin?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Retourne l'architecture du processeur (x86 etc ...)
    • PROCESSOR_IDENTIFIER Renvoie l'ID du processeur.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Renvoie le nombre de révisions du processeur.
    • Répertoire temporaire TEMP.
    • Répertoire temporaire TMP.
    • dossier windir où Windows est installé.
    • Dossier SystemRoot où Windows est installé.

Notez que:

Si vous êtes connecté en tant qu'administrateur, vous pouvez effectuer les modifications via le Panneau de configuration / Système avancé / Variables d'environnement.
Article Précédent Article Suivant

Les Meilleurs Conseils