Définir des Variables Globales en VBA
Je suis en train de faire un "OS" dans PowerPoint et j'ai besoin de savoir comment définir des variables globales pour les paramètres.
J'ai fait un module appelé "Paramètres" contenant:
Public Sub Settings()
Option Explicit
Public UserName, UserIcon, Background, BrowserHomePage As String
Public SetupComplete As Boolean
SetupComplete = False
UserName = "Administrator"
UserIcon = Nothing
Background = Nothing
BrowserHomePage = Nothing
'Set the variables
UserName.Text = UserName
End Sub
Maintenant sur "se connecter" de l'écran, j'ai une zone de texte nommée "nom d'utilisateur". J'ai ensuite fait un bouton, il suffit de tester les variables. Le bouton n'est présent:
Private Sub CommandButton1_Click()
UserName.Value = UserName
End Sub
La zone de texte n'a aucune valeur quand je clique sur le bouton. Je suis super nouvelle en VBA, et je voudrais savoir comment faire cela. Aussi, si quelqu'un sait comment faire pour exécuter automatiquement des codes lors du démarrage de l'PowerPoint, ce serait fantastique.
EDIT: je suis en train de faire un module contenant uniquement les paramètres. Quelqu'un peut-il montrer comment modifier les valeurs de diapositives? Comme si je clique sur un bouton dans la diapositive 1, je veux changer le "nom d'utilisateur" de la valeur dans le module "Paramètres" pour ce que je veux.
Solution: Ok, j'ai trouvé la solution. Je dois écrire les paramètres dans un fichier texte et de le récupérer pour la lecture.
Mes paramètres de module:
Public UserName As String, Password As String, UserIcon As String, DesktopBackground As String, LogInBackground As String, BrowserHomePage As String
Public InitialSetupCompleted As Boolean
Public Sub ReadSettings()
'Delcaring variables
TempDir = Environ("Temp")
SettingsFileName = "\OpenOSSettings.txt"
SettingsFile = TempDir & SettingsFileName
ReadFile = FreeFile()
'Read all settings from file
Open SettingsFile For Input As #ReadFile
Do While Not EOF(ReadFile)
Line Input #ReadFile, Read
If Read Like "UserName = *" Then
UserName = Replace(Read, "UserName = ", "")
End If
If Read Like "Password = *" Then
Password = Replace(Read, "Password = ", "")
End If
If Read Like "UserIcon = *" Then
UserIcon = Replace(Read, "UserIcon = ", "")
End If
If Read Like "DesktopBackground = *" Then
DesktopBackground = Replace(Read, "DesktopBackground = ", "")
End If
If Read Like "LogInBackground = *" Then
LogInBackground = Replace(Read, "LogInBackground = ", "")
End If
If Read Like "BrowserHomePage = *" Then
BrowserHomePage = Replace(Read, "BrowserHomePage = ", "")
End If
If Read Like "InitialSetupCompleted = *" Then
InitialSetupCompleted = Replace(Read, "InitialSetupCompleted = ", "")
End If
Loop
Close #ReadFile
'Applying settings to all elements
Slide5.UserName.Caption = UserName
End Sub
Public Sub SaveSettings()
'Declaring variables
TempDir = Environ("Temp")
SettingsFileName = "\OpenOSSettings.txt"
SettingsFile = TempDir & SettingsFileName
WriteFile = FreeFile()
'Write all settings to file
Open SettingsFile For Output As #WriteFile
Print #WriteFile, "UserName = " & UserName
Print #WriteFile, "Password = " & Password
Print #WriteFile, "UserIcon = " & UserIcon
Print #WriteFile, "DesktopBackground = " & DesktopBackground
Print #WriteFile, "LogInBackground = " & LogInBackground
Print #WriteFile, "BrowserHomePage = " & BrowserHomePage
Print #WriteFile, "InitialSetupCompleted = " & InitialSetupCompleted
Close #WriteFile
End Sub
Maintenant pour enregistrer les paramètres, je viens d'utiliser une zone de texte et un bouton.
Économie de la valeur de TextBox1 de nom d'utilisateur dans le fichier:
Private Sub CommandButton1_Click()
UserName = TextBox1.Value
Settings.SaveSettings
End Sub
La lecture de la valeur de nom d'utilisateur et le mettre dans TextBox1:
Private Sub CommandButton2_Click()
Settings.ReadSettings
TextBox2.Value = UserName
End Sub
Code très long, mais ça marche bien. Merci à tous!
- {générique d'alerte à propos des variables globales}
Public UserName, UserIcon, Background, BrowserHomePage As String
ici seulementBrowserHomePage
est une chaîne, vous devez répéteras string
après chaque variable- "Je suis en train de faire un "OS" dans PowerPoint". !!???
Vous devez vous connecter pour publier un commentaire.
Ne mettez pas vos valeurs dans un module. Les Modules de code et vous permettra de faire plus de travail en essayant de stocker les données que vous souhaitez. De stocker les paramètres dans le registre ou dans un fichier texte. Si vous souhaitez que les paramètres à l'intérieur du fichier, vous pouvez être en mesure d'utiliser CustomDocumentProperties ou caché glisser - je ne sais pas assez sur PPT pour vous donner une bonne suggestion.
Faire une procédure qui lit les paramètres à partir de là où vous les stockez. Ensuite, faire une procédure pour écrire de nouveau pour le stockage. Lorsque l'utilisateur clique sur un bouton de certaines sur la diapositive, vous changer le nom de la variable, puis exécutez la procédure qui écrit pour le stockage.
Lors de la déclaration de variables sur la même ligne, vous devez comprendre le type de chaque variable.
s'estompe BrowserHomePage comme une Chaîne de caractères, mais les trois autres variables comme des Variantes. Utiliser ce lieu
Ou mieux encore, mais sur leur propre ligne.
Votre "nom d'utilisateur" à la variable n'est pas réellement mondial, car c'est dans le cadre de vos Paramètres de sous-programme. Déplacez vos déclarations de variables en dehors d'une fonction/sous-routine pour faire du monde.
Essayez ceci: