INIファイルへの書き込み/読込み : Excel(エクセル)

INIファイルを使うと、次回起動時の初期設定値などを保存でき便利です。
使い方も簡単です。
・書き込み時、指定したファイルがなくても、自動的に作成されエラーにはなりません。
・読込み時、指定したデータが登録されていない場合にも、既定値を設定できエラーにはなりません。

Excel Tipsメニューに戻る

スポンサーリンク



Excel実行画面

「書き込み」ボタンをクリックすると、E3 〜 E5 が書き込まれます。
「読込み」ボタンをクリックすると、指定データが読み込まれE7 〜 E9 に表示されます。

Excel VBA コード

'INIファイル読込み
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

'INIファイル書き込み
Private 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

'Excel VBAでINIファイル書き込み
Private Sub CommandButton1_Click()
    Dim lret As Long
    Dim s1 As String
    
    s1 = Range("E3")
    'セクション: Excel_INIファイル
    'キー: 文字
    '書き込む文字: s1
    'INIファイル名: c:\test.ini
    lret = WritePrivateProfileString("Excel_INIファイル", "文字", s1, "c:\test.ini")

    'セクション: Excel_INIファイル
    'キー: 数字
    '書き込む文字: s1
    'INIファイル名: c:\test.ini
    s1 = Range("E4")
    lret = WritePrivateProfileString("Excel_INIファイル", "数字", s1, "c:\test.ini")

    s1 = Range("E5")
    'セクション: エクセル_INIファイル
    'キー: 文字
    '書き込む文字: s1
    'INIファイル名: c:\test.ini
    lret = WritePrivateProfileString("エクセル_INIファイル", "文字", s1, "c:\test.ini")

End Sub

'Excel VBAでINIファイル読込み
Private Sub CommandButton2_Click()
    Dim buf As String * 256
    
    'セクション: Excel_INIファイル
    'キー: 数字
    '既定値: 556
    'INIファイル名: c:\test.ini
    rc = GetPrivateProfileString _
        ("Excel_INIファイル", "数字", 556, buf, Len(buf), "c:\test.ini")
    '文末のNULL文字を削除
    Range("E7") = Left$(buf, InStr(buf, vbNullChar) - 1)

    'セクション: Excel_INIファイル
    'キー: 文字
    '既定値: NULL
    'INIファイル名: c:\test.ini
    rc = GetPrivateProfileString _
        ("Excel_INIファイル", "文字", vbNullString, buf, Len(buf), "c:\test.ini")
    Range("E8") = Left$(buf, InStr(buf, vbNullChar) - 1)

    'セクション: エクセル_INIファイル
    'キー: 文字
    '既定値: "VBA"
    'INIファイル名: c:\test.ini
    rc = GetPrivateProfileString _
        ("エクセル_INIファイル", "文字", "VBA", buf, Len(buf), "c:\test.ini")
    Range("E9") = Left$(buf, InStr(buf, vbNullChar) - 1)
End Sub

スポンサーリンク



Excel VBAで書き込まれた、INIファイル

セクション、キー毎に区分され書き込まれているのが分かります。

スポンサーリンク






Excel Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved