過去ログを参考にして外部のテキストファイル(オフ.txt)をコンボボックスのリストに読み込むコードを作成しました。テキストが後に増える可能性があるため配列を使いました。しかしインデックスが有効範囲外です。のようなエラーが出てしまいます。お力を貸してください
Private Sub Form_Load()
Dim i
Dim Tx()
Dim Txn
Open "C:\Documents and Settings\sakait.JC\デスクトップ\オフ.txt" For Input As #1 'ファイルをオープン
Do While EOF(1) = False 'END OF FILE まで繰り返す
i = i + 1 'データが何個あるかカウントする
Input #1, Tx(i) 'データのInput Tx()は配列変数
Loop
Close #1
Txn = i 'データ個数をTxnに格納
Combo1.Clear 'Cmb1(コンボボックス)をクリアする
If Txn > 0 Then 'データがあれば
With Combo1 'コンボへの書き込みを開始
.AddItem "" '1番目を空白とする。(不要なら削除)
For i = 1 To Txn 'データの個数だけ繰り返す
.AddItem Tx(i) 'コンボにデータを書き込む
Next i
End With 'コンボへの書き込みを終了
End If
End Sub
Open "C:\Documents and Settings\sakait.JC\デスクトップ\オフ.txt" For Input As #1 'ファイルをオープン
Do While EOF(1) = False 'END OF FILE まで繰り返す
Redim Preserve Tx(i)
Input #1, Tx(i) 'データのInput Tx()は配列変数
i = i + 1 'データが何個あるかカウントする
Loop
Close #1
Txn = UBound(Tx)+1 'データ個数をTxnに格納
Combo1.Clear 'Cmb1(コンボボックス)をクリアする
If Txn > 0 Then 'データがあれば
With Combo1 'コンボへの書き込みを開始
.AddItem "" '1番目を空白とする。(不要なら削除)
For i = LBound(Tx) To UBound(Tx) 'データの個数だけ繰り返す
.AddItem Tx(i) 'コンボにデータを書き込む
Next i
End With 'コンボへの書き込みを終了
End If
間違えた。
Open "C:\Documents and Settings\sakait.JC\デスクトップ\オフ.txt" For Input As #1 'ファイルをオープン
Tx = Split("")
Do While EOF(1) = False 'END OF FILE まで繰り返す
Redim Preserve Tx(i)
Input #1, Tx(i) 'データのInput Tx()は配列変数
i = i + 1 'データが何個あるかカウントする
Loop
Close #1
Combo1.Clear 'Cmb1(コンボボックス)をクリアする
With Combo1 'コンボへの書き込みを開始
.AddItem "" '1番目を空白とする。(不要なら削除)
For i = LBound(Tx) To UBound(Tx) 'データの個数だけ繰り返す
.AddItem Tx(i) 'コンボにデータを書き込む
Next i
End With 'コンボへの書き込みを終了
たぶん、こんな感じ・・・
どうでも良いですが、なぜに配列に格納するの?
読んだらコンボボックスに追加じゃだめなの?
解決しました。ありがとうございました。助かりました
ツイート | ![]() |