HOME > 即効テクニック > AccessVBA > API > INIファイルから文字列を取得する(API)

即効テクニック

API

INIファイルから文字列を取得する(API)

( - )

GetPrivateProfileString API関数を使って、INIファイルの指定セクションの指定
キーに関連付けられている値を文字列として取得することができます。


● 準備 ●
(1)メモ帳等で以下の2行のテキストファイルを作成します。
   [COMPANY]
   KYOTEN=大阪

(2)このファイルを「TestReadINI.ini」という名前で保存し、Windowsフォルダへコ
ピーしておきます。

(3)新規標準モジュールを用意し、以下のプロシージャを記述します。


● サンプルプログラム ●

' INIファイル文字列情報取得関数(API)の定義
Public 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ファイルから文字列情報を取得する関数
' 返り値:取得データ
' 引き数:FName - .iniファイル名
'         SName - セクション名
'         KName - キー名
'         Default - 取得に失敗したときや該当する項目が無かった時の戻り値
Public Function ReadIni(ByVal FName As String, ByVal SName As String, _
           ByVal KName As String, ByVal Default As String) As String
    Dim RtnCD As Long
    Dim RtnStr As String
    
    ' GetPrivateProfileString APIを利用し、INIファイルから情報取得
    RtnStr = Space$(256)
    RtnCD = GetPrivateProfileString(SName, KName, Default, RtnStr, 255,  _
    FName)
    
    ' 戻り値設定
    If RtnCD > 0 Then
        If InStr(RtnStr, Chr$(0)) > 0 Then
            ReadIni = Left$(RtnStr, InStr(RtnStr, Chr$(0)) - 1)
        Else
            ReadIni = ""
        End If
    Else
        ReadIni = Default
    End If
    
End Function

' INIファイルから取得した文字列情報を表示する関数
Public Sub ShowParaStr()
    Const IniName = "TestReadIni.ini" ' INIファイル名
    Const SecName = "COMPANY"     ' セクション名
    Const KeyName = "KYOTEN"      ' キー名
    Const Default = "NONE"       ' デフォルト値
    
    MsgBox "キーの値は「" & _
        ReadIni(IniName, SecName, KeyName, "") & _
        "」です。"

End Sub


● 動作確認 ●
  「ShowParaStr」プロシージャを実行して下さい。
標準モジュールですので、「ShowParaStr」プロシージャ内にカーソルを置いて実行ボタンを押すか、[F5]キーを押します。
  INIファイルが正常に読込まれると、「キーの値は「大阪」です。」とメッセージが表示されます。


● 詳細 ●
[GetPrivateProfileString API関数]
  引数:lpApplicationName - セクション名が入った文字列バッファ
	lpKeyName - キー名が入った文字列バッファ
	lpDefault - キーが見つからない場合に格納する文字列バッファ
	lpReturnedString - 取得した文字列バッファ
	nSize - lpReturnedStringバッファのサイズ
	lpFileName - INIファイルの名前が入った文字列バッファ
  戻り値:成功すると、取得された文字列の文字数が返ります。
     テキストがないときや失敗した場合は、0が返ります。


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