即効テクニック |
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アプリケーションと同じフォルダ)に置いても構いません。