I am currently creating an "OS" in PowerPoint, and I need to know how to set global variables for the settings.
I created a module called "Settings", containing:
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
Now on the login screen I have a text box called "UserName". Then I made a button to check the variables. The button does this:
Private Sub CommandButton1_Click() UserName.Value = UserName End Sub
The text box doesn't matter when I click the button. I am super new in VBA and would like to know how to do this. Also, if someone knows how to automatically execute codes when starting PowerPoint, that would be fantastic.
EDIT: I am trying to create a module containing only settings. Can anyone point out how to change the values โโfrom the slides? For example, if I click on the button in slide 1, I want it to change the โUserNameโ value in the โSettingsโ module to whatever I want.
Solution : Ok, I found one solution. I need to write the settings to a text file and get it for reading.
My settings 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
Now, to save the settings, I just use a text box and a button. Saving the value of TextBox1 to UserName in a file:
Private Sub CommandButton1_Click() UserName = TextBox1.Value Settings.SaveSettings End Sub
Reading the value of UserName and putting it in TextBox1:
Private Sub CommandButton2_Click() Settings.ReadSettings TextBox2.Value = UserName End Sub
Very long code, but it works well. Thanks everyone!