テキストボックスがコントロール配列になっているなら、こんな感じで良いのでは?
iniファイルをC:\tmp\test.iniとしておき、
フォームにText1というコントロール配列を5個置いて実行して下さい。
Enabledを変えてるから書き換えられないテキストはグレーですが。
--------------------------------------------
Private Declare Function GetPrivateProfileString Lib "Kernel32.dll" _
Alias "GetPrivateProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Sub Form_Load()
Dim strFile As String 'iniファイルパス
Dim strMyNo As String '[MY_NO]に設定された番号
Dim strMyNameKey As String '[MY_NAME]キー
Dim i As Integer 'カウンタ
Dim strGetVal As String 'iniファイルから読んだ文字列
strFile = "C:\tmp\test.ini"
'MY_NOの設定値を読む
strGetVal = Space(256)
GetPrivateProfileString "MY_NO", "MY_NO", "", strGetVal, 256, strFile
strMyNo = Trim(Left(strGetVal, InStr(1, strGetVal, vbNullChar) - 1))
For i = Text1.LBound To Text1.UBound
strGetVal = Space(256)
'キー文字列作る。
strMyNameKey = "0" & (i + 1)
'読み込む
GetPrivateProfileString "MY_NAME", strMyNameKey, "", _
strGetVal, 256, strFile
'末尾の改行を取りつつテキストに表示
Text1(i).Text = Trim(Left(strGetVal, InStr(1, strGetVal, vbNullChar) - 1))
'キーと、MY_NOの設定値を比較して一致したらテキストボックスを触れなくする
If StrComp(strMyNameKey, strMyNo) = 0 Then
Text1(i).Enabled = False
End If
Next
End Sub
お礼
お返事ありがとうございます! おかげさまでイメージどおりのが出来ました! まさにソレ!グレーになりました。 やはしポイントはEnabledですね。 私の辞書がいかんせんヘボイのが悲しいです(買え) MY_NOとMY_NAMEを読んで来て、Ifで比較する… ばっちりです! ありがとうございました!! お三方のご意見、とても参考になり勉強になりました。 本当にありがとうございました^^