VB6 リファレンス お品書き へ戻ります
Visual Basic6 リファレンス


VB6 INIファイル操作
APIを使ったINIファイルのデータ取得・セット操作

API

ソースはVB6用で記述しています。VB.NET以降のバージョンは型宣言に注意してください(VB6:Long → VB.NET以降:Integer)

お品書き
● 標準モジュールAPI定義の標準モジュール
● サンプルリストINIファイルから値(文字列)を取得するサンプル プログラム
● サンプルリストINIファイルへ値(文字列)をセットするサンプル プログラム
● GetPrivateProfileStringINIファイルから値(文字列)を取得
● GetPrivateProfileIntINIファイルから値(数値)を取得
● WritePrivateProfileStringINIファイルへ値をセット


● API定義の標準モジュール

'=========================================
' INIファイルから指定したセクション名、キー名の値(文字列)を取得
'=========================================
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
   (ByVal lpAppName 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ファイルから指定したセクション名、キー名の値(数値)を取得
'========================================
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
   (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long, _
   ByVal lpFileName As String) As Long

'===========================================
' INIファイルから指定したセクション名、キー名へ値(文字列)をセット
'===========================================
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
   (ByVal lpAppName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
   ByVal lpFileName As String) As Long


● INIファイルから値(文字列)を取得するサンプル プログラム

'========================
' INIファイルから値(文字列)を取得する
'========================
Dim lpReturnedString As String * 1024 '格納バッファ
Dim strData As String '取得した値
Dim result As Long    '戻り値 (取得した値の文字数)

result = GetPrivateProfileString("SECTION", "KEY", "", _
             lpReturnedString, Len(lpReturnedString), "C:¥TEST¥SAMPLE.INI")
strData = Left(lpReturnedString, InStr(lpReturnedString, Chr(0)) - 1)

SAMPLE.INI
[SECTION]
KEY=HELLO


● INIファイルへ値(文字列)をセットするサンプル プログラム

'=======================
' INIファイルへ値(文字列)を格納する
'=======================
Dim result As Long '戻り値(0=失敗、0<>成功)
result = WritePrivateProfileString("SECTION", "KEY", "HELLO", "C:¥TEST¥SAMPLE.INI")

SAMPLE.INI
[SECTION]
KEY=HELLO


● GetPrivateProfileString APIメソッド
【機能】指定されたINIファイルの指定されたセクション内にある、指定されたキーに関連付けられている文字列を取得し、取得した文字数を返します。
【宣言】 Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

lpAppNameセクション名を指定します。
lpKeyNameキー名を指定します。
lpDefault指定したキー名が見つからなかった場合の、規定文字列をセットします。
lpReturnedString指定したキー名の値がセットされます。
nSizelpReturnedStringのサイズをセットします。
lpFileNameINIファイル名をセットします。
【 例 】 Dim lpReturnedString As String * 1024 '格納バッファ
Dim strData As String '取得した値
Dim result As Long    '戻り値 (取得した値の文字数)

result = GetPrivateProfileString("SECTION", "KEY", "", _
             lpReturnedString, Len(lpReturnedString), "C:¥TEST¥SAMPLE.INI")
strData = Left(lpReturnedString, InStr(lpReturnedString, Chr(0)) - 1)


● GetPrivateProfileInt APIメソッド
【機能】指定されたINIファイルの指定されたセクション内にある、指定されたキーに関連付けられている整数を返します。
【宣言】 Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long, _
ByVal lpFileName As String) As Long

lpAppNameセクション名を指定します。
lpKeyNameキー名を指定します。
nDefault指定したキー名が見つからなかった場合の、規定値をセットします。
lpFileNameINIファイル名をセットします。
【 例 】 Dim result As Long    '戻り値 (取得した整数値)
result = GetPrivateProfileInt("SECTION", "KEY", 0, "C:¥TEST¥SAMPLE.INI")


● WritePrivateProfileString APIメソッド
【機能】指定されたINIファイルの指定されたセクション内にある、指定されたキーに、指定された文字列をセットします。成功すると、0 以外の値が返ります。
【宣言】 Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

lpAppNameセクション名を指定します。
lpKeyNameキー名を指定します。
lpString指定したキー名の値をセットします。
lpFileNameINIファイル名をセットします。
【 例 】 Dim result As Long '戻り値(0=失敗、0<>成功)
result = WritePrivateProfileString("SECTION", "KEY", "HELLO", "C:¥TEST¥SAMPLE.INI")