コンボボックスへの外部テキストからの読み込み

解決


ひろ  2004-09-23 04:45:15  No: 116447

過去ログを参考にして外部のテキストファイル(オフ.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


+id_rsa  2004-09-23 05:41:35  No: 116448

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


+id_rsa  2004-09-23 05:45:39  No: 116449

間違えた。
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                     'コンボへの書き込みを終了

たぶん、こんな感じ・・・


oku  URL  2004-09-23 08:56:11  No: 116450

どうでも良いですが、なぜに配列に格納するの?
読んだらコンボボックスに追加じゃだめなの?


ひろ  2004-09-24 21:50:08  No: 116451

解決しました。ありがとうございました。助かりました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加