HOME > 即効テクニック > AccessVBA > API > INIファイルに文字列を設定する

即効テクニック

API

INIファイルに文字列を設定する

( - )

WritePrivateProfileString API関数を使って、INIファイルの指定セクションの指
定キーに文字列を設定することができます。


● 準備 ●
(1)新規標準モジュールを用意し、以下の宣言文とSubプロシージャを記述します。
(2)VBEのメニューから、[表示]-[イミディエイトウィンドウ]([Ctrl]+[G])を選択しイミディエイトウィンドウを表示させておきます。

  ※Access97の場合はデバッグウィンドウになりますので、以後読み替えて下さい。


● サンプル ●

' INIに文字列情報を設定する関数(API)の定義
Public 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

' INIファイルに文字列情報を設定する関数
Public Sub SetParaStr(ParaStr As String)
    Const IniName = "TestWriteINI.ini" ' INIファイル名
    Const SecName = "COMPANY"          ' セクション名
    Const KeyName = "KYOTEN"           ' キー名
    
    'INIファイルに文字列を書き込む
    If WritePrivateProfileString(SecName, KeyName, ParaStr, _
                                 IniName) <> 0 Then
        MsgBox "正常に書き込まれました"
    Else
        MsgBox "正常に書き込まれまれませんでした"
    End If
End Sub


● 動作確認 ●
イミディエイトウィンドウにて「SetParaStr "文字列"」の形式で打ち込みます。
例えばSetParaStr "北海道"と実行してみて下さい。

「正常に書き込まれました」と完了メッセージが出れば、Windowsフォルダに「TestWriteINI.ini」ファイルが作成され、中身が
[COMPANY] KYOTEN=北海道 の2行になっている筈です。


● 詳細 ●
[WritePrivateProfileString API関数]
  引数:lpApplicationName - セクション名が入った文字列バッファ
	lpKeyName - キー名が入った文字列バッファ
	lpString - キーに設定する文字列バッファ
	lpFileName - INIファイルの名前が入った文字列バッファ
  戻り値:成功すると、0以外の値が返ります。
     失敗すると、0が返ります。
    (エラー情報を取得するにはGetLastError API関数を使います。)


● 補足説明 ●
INIファイルはデフォルトでWindowsフォルダを探しに行きますが、パスを含めて指定
すれば、他の場所(例えばAccessアプリケーションと同じフォルダ)に置いても構い
ません。