現在、PowerPointで "OS"を作成していますが、設定にグローバル変数を設定する方法を知る必要があります。
「設定」というモジュールを作成しました。
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
「ログイン」画面に、「ユーザー名」というテキストボックスがあります。次に、変数をテストするためのボタンを作成しました。ボタンはこれを行います:
Private Sub CommandButton1_Click()
UserName.Value = UserName
End Sub
ボタンをクリックしても、テキストボックスに値がありません。私はVBAでとても新しいので、これを行う方法を知りたいです。また、PowerPointの起動時にコードを自動的に実行する方法を知っている人がいれば、それはすばらしいことです。
編集:設定のみを含むモジュールを作成しようとしています。誰かがスライドから値を変更する方法を指摘できますか?スライド1のボタンをクリックするように、モジュール「設定」の「ユーザー名」の値を好きなように変更します。
ソリューション:わかりました、1つのソリューションが見つかりました。設定をテキストファイルに書き込み、読み取り用に取得する必要があります。
私の設定モジュール:
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
設定を保存するには、テキストボックスとボタンを使用します。 TextBox1の値をファイルのUserNameに保存します。
Private Sub CommandButton1_Click()
UserName = TextBox1.Value
Settings.SaveSettings
End Sub
UserNameの値を読み取り、TextBox1に入れます。
Private Sub CommandButton2_Click()
Settings.ReadSettings
TextBox2.Value = UserName
End Sub
非常に長いコードですが、うまく機能します。みんな、ありがとう!
モジュールに設定値を入れないでください。モジュールはコード用であり、モジュールにデータを格納しようとすると、必要以上の作業が必要になります。レジストリまたはテキストファイルに設定を保存します。設定をファイル内に含めたい場合は、CustomDocumentPropertiesまたは非表示のスライドを使用できる可能性があります。PPTについてはよくわかりません。
保存した場所から設定を読み取る手順を作成します。次に、それらをストレージに書き戻す手順を作成します。ユーザーがスライド上の特定のボタンをクリックすると、Username変数が変更され、それをストレージに書き込むプロシージャが実行されます。
同じ行で変数を宣言するときは、各変数の型を含める必要があります。
Public UserName, UserIcon, Background, BrowserHomePage As String
browserHomePageを文字列として無効にしますが、他の3つの変数はバリアントとして無効にします。代わりにこれを使用してください
Public UserName As String, UserIcon As String, Background As String, BrowserHomePage As String
またはもっと良いですが、それらはすべて独自のラインにあります。
「username」変数は、設定サブルーチンのスコープ内にあるため、実際にはグローバルではありません。変数宣言を関数/サブルーチンの外に移動して、グローバルにします。
これを試して:
Option Explicit
Public UserName, UserIcon, Background, BrowserHomePage As String
Public SetupComplete As Boolean
Public Sub Settings()
SetupComplete = False
UserName = "Administrator"
UserIcon = Nothing
Background = Nothing
BrowserHomePage = Nothing
'Set the variables
UserName.Text = UserName
End Sub