質問です。 VB6環境 XPにて
PutIniを使ってiniへ書込みをしているのですが、オブジェクトとキーの変数の
コードを簡単にしたいのですが、わかりません。
PutIni "外来担当表", "ADDText1", Combo1, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
PutIni "外来担当表", "ADDText2", Combo2, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
PutIni "外来担当表", "ADDText3", Combo3, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
PutIni "外来担当表", "ADDText4", Combo4, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
また、GetIniに関してもわからない
Label1 = GetIni("外来担当表", "ADDText1", "", "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini")
Label2 = GetIni("外来担当表", "ADDText2", "", "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini")
Label3 = GetIni("外来担当表", "ADDText3", "", "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini")
Label4 = GetIni("外来担当表", "ADDText4", "", "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini")
ご教授おねがいします。
>PutIni GetIni
これらは自作の関数でしょうか?
VB6にそれらの関数は標準にありませんけれども。
>コードを簡単にしたいのですが、わかりません。
うまいことループさせればよさそうですが。。。
何がわかりませんか?
Combo1〜Combo4およびLabel1〜Label4
はコントロール配列には出来ないのでしょうか?
失礼しました。
Option Explicit
Private 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
Private 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
Public Function GetIni(ApName As String, KeyName As String, _
Default As String, Filename As String _
) As String
'INIファイルから参照したいキーの値を取得する
'ApName : セクション名
'KeyName : 項目名
'Default : 項目が存在しない場合の初期値
'FileName : 参照ファイル名
'****************************************
Dim strResult As String
strResult = Space$(255)
Call GetPrivateProfileString(ApName, _
KeyName, Default, _
strResult, _
Len(strResult), _
Filename)
GetIni = Left$(strResult, InStr(strResult, Chr$(0)) - 1)
End Function
Public Sub PutIni(ApName As String, _
KeyName As String, _
Param As String, _
Filename As String)
'INIファイルに新たなキーの値を書込む
' ※既存のキーがあれば更新・なければ新規作成する
'ApName : セクション名
'KeyName : 項目名
'Param : 更新する値
'FileName : 書出ファイル名
'****************************************
Call WritePrivateProfileString(ApName, _
KeyName, _
Param, _
Filename)
End Sub
複数のコントロールの結合がわかりません。
combo.nameとlabel.nameの番号は自動で同じ番号をみるのでしょうか?
連投失礼します。
PutIniでは、Combo1に対してiniへADDText1(キー)書込み
GetIniでは、ADDText1(キー)からLabel1へ読み込み
となります。
>combo.nameとlabel.nameの番号は自動で同じ番号をみるのでしょうか?
ごめんなさい、意味がわかりません。
Visual Basic 6.0 初級講座
コントロール配列
http://homepage1.nifty.com/rucio/main/shokyu/jugyou20.htm
コントロール配列を使えば簡単にループで設定出来ます。
(使わなくても出来ないことはないが、コンパイル時にエラーを見つけることが出来ないので)
>PutIni "外来担当表", "ADDText1", Combo1, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
>PutIni "外来担当表", "ADDText2", Combo2, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
>PutIni "外来担当表", "ADDText3", Combo3, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
>PutIni "外来担当表", "ADDText4", Combo4, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
Dim i As Integer
For i = 1 To 4 Step 1
PutIni "外来担当表", "ADDText" & CStr(i), Combo(i).Text, "\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
Next i
GetIniの方も同様にしてみてください。
どうしてもコントロール配列に出来なければ、
>Combo(i).Text
を
Me.Controls("Comb" & CStr(i)).Text
としてみてください。(試していないので動くかは確かではないです)
Blue様 ありがとうございました。
無事解決することと共にコントロールについて理解しました。
'ini書込ボタン
'****************************************
'iniファイルパスの指定
Const INI_PATH As String = _
"\\192.168.60.253\Admin共有\用度\VB\Window_Data\Window.ini"
'****************************************
'外来担当表・土曜外来-書込
Dim i As Integer
For i = 1 To 87 Step 1
PutIni "外来担当表", "ADDText" & CStr(i), Combo(i), INI_PATH
Next i
'外来担当表・土曜外来-読込
Dim r As Integer
For r = 1 To 87 Step 1
Combo(r) = GetIni("外来担当表", "ADDText" & CStr(r), "", INI_PATH)
Next r
と無事成功しました。
ありがとうございました。
ツイート | ![]() |