SetIni()

INI ファイルにデータを書き込む関数です。対になる読み出し関数 GetIni() はこちら

ちなみに処理内容は、単に受け取った引数をそのまま API に流しているだけです(^^;
プロシージャ GetIni() と同形式にしたかっただけなので、本来は API を直接呼んだ方が処理速度の点から望ましいと思います。

'標準モジュールに記述します。

Option Explicit

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

Public Function SetIni(strSecName As String, strKeyName As String, _
                       strData As String, strIniPath As String) as Long
'INIファイルの、指定したセクション・キーにデータを記録します。
'ファイルが存在しなかった場合は自動的に作成されます。
'<引数>
'  strSecName : セクション名
'  strKeyName : キー名
'  strData    : 書き込む文字列
'  strIniPath : 書き込み INI ファイルのフルパス
'<戻り値>
'  1 = 成功 / 0 = 失敗

    SetIni = WritePrivateProfileString(strSecName, strKeyName, strData, strIniPath)

End Function

実行例:

'フォームにボタンを用意して、以下のプロシージャを記述します。

Private Sub Command1_Click()
    Dim lngRet As Long
    lngRet = SetIni("Section1", "Key1", "にゃんにゃん", "C:\Temp\hoehoe.ini")
End Sub

成功していれば、「C:\Temp\hoehoe.ini」に次のようなセクションが作られているはずです。

[Section1]
Key1=にゃんにゃん

***注意***

INI ファイルへの書き込みには、ディスクアクセスが伴うぶんわずかな時間がかかります。
書き込みの直後に読み出しといった処理を行うと、データが壊れる可能性が多分にありますので注意してください。

戻る