スクリプトに書かず、初期値などをiniファイルに残したり、読み込んだりする手法。
よく使うので、今までのスクリプトを見直し、作成。
iniファイルnの中身
-----------------------------
[Window]
TOP = 0
LEFT = 0
WIDTH = 400
HEIGHT = 200
-----------------------------
[]で囲まれた部分(カテゴリ)をセクション(section)と呼び、
TOP、LEFTなどの部分をキー(key)と呼ぶ。
↓↓↓↓↓Script↓↓↓↓↓
'***** API宣言
'Iniファイル読み込み用
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
'Iniファイル書き込み用
Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
'***** 読み込み用Script
' KEY :データの項目
' Section :セクション(カテゴリ)
' ININame :iniファイルのファイル名(フルパス)
' GetINIValue:戻り値(エラーだった場合は、戻り値:Error)
Public Function GetINIValue(KEY As String, Section As String, ININame As String) As String
'エラー処理
On Error GoTo Err_Handler:
'ローカル変数宣言
Dim Value As String * 255
'読み込み処理
Call GetPrivateProfileString(Section, KEY, "ERROR", Value, Len(Value), ININame)
'戻り値設定処理
GetINIValue = Left$(Value, InStr(1, Value, vbNullChar) - 1)
'ルーチン終了処理
Exit_Routine:
Exit Sub
'***** エラー処理
Err_Handler:
'戻り値設定処理
GetINIValue = "Error"
'*****メッセージ等必要な処理はここで。。。
'復旧しルーチン終了処理へ移動
Resume Exit_Routine:
End Function
'***** 書き込み用Script
' Value :データ
' KEY :データの項目
' Section :セクション(カテゴリ)
' ININame :iniファイルのファイル名(フルパス)
' GetINIValue:戻り値(エラーだった場合は、戻り値:False。それ以外はTrue)
Public Function SetINIValue(Value As String, KEY As String, Section As String, ININame As String) As Boolean
'エラー処理
On Error GoTo Err_Handler:
'ローカル変数宣言
Dim Ret As Long
'書き込み処理
Ret = WritePrivateProfileString(Section, KEY, Value, ININame)
'戻り値設定処理:
'上記Retの戻り値が0の時はFalse
'それ以外はTrueを返す
SetINIValue = CBool(Ret)
'ルーチン終了処理
Exit_Routine:
Exit Sub
'***** エラー処理
Err_Handler:
'戻り値設定処理
SetINIValue = "Error"
'*****メッセージ等必要な処理はここで。。。
'復旧しルーチン終了処理へ移動
Resume Exit_Routine:
End Function
よく使うので、今までのスクリプトを見直し、作成。
iniファイルnの中身
-----------------------------
[Window]
TOP = 0
LEFT = 0
WIDTH = 400
HEIGHT = 200
-----------------------------
[]で囲まれた部分(カテゴリ)をセクション(section)と呼び、
TOP、LEFTなどの部分をキー(key)と呼ぶ。
↓↓↓↓↓Script↓↓↓↓↓
'***** API宣言
'Iniファイル読み込み用
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
'Iniファイル書き込み用
Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
'***** 読み込み用Script
' KEY :データの項目
' Section :セクション(カテゴリ)
' ININame :iniファイルのファイル名(フルパス)
' GetINIValue:戻り値(エラーだった場合は、戻り値:Error)
Public Function GetINIValue(KEY As String, Section As String, ININame As String) As String
'エラー処理
On Error GoTo Err_Handler:
'ローカル変数宣言
Dim Value As String * 255
'読み込み処理
Call GetPrivateProfileString(Section, KEY, "ERROR", Value, Len(Value), ININame)
'戻り値設定処理
GetINIValue = Left$(Value, InStr(1, Value, vbNullChar) - 1)
'ルーチン終了処理
Exit_Routine:
Exit Sub
'***** エラー処理
Err_Handler:
'戻り値設定処理
GetINIValue = "Error"
'*****メッセージ等必要な処理はここで。。。
'復旧しルーチン終了処理へ移動
Resume Exit_Routine:
End Function
'***** 書き込み用Script
' Value :データ
' KEY :データの項目
' Section :セクション(カテゴリ)
' ININame :iniファイルのファイル名(フルパス)
' GetINIValue:戻り値(エラーだった場合は、戻り値:False。それ以外はTrue)
Public Function SetINIValue(Value As String, KEY As String, Section As String, ININame As String) As Boolean
'エラー処理
On Error GoTo Err_Handler:
'ローカル変数宣言
Dim Ret As Long
'書き込み処理
Ret = WritePrivateProfileString(Section, KEY, Value, ININame)
'戻り値設定処理:
'上記Retの戻り値が0の時はFalse
'それ以外はTrueを返す
SetINIValue = CBool(Ret)
'ルーチン終了処理
Exit_Routine:
Exit Sub
'***** エラー処理
Err_Handler:
'戻り値設定処理
SetINIValue = "Error"
'*****メッセージ等必要な処理はここで。。。
'復旧しルーチン終了処理へ移動
Resume Exit_Routine:
End Function