Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50477 / 76738 ←次へ | 前へ→

【31150】Re:ランダムファイルからのコンボボックスへのアイテム追加
発言  ichinose  - 05/11/12(土) 17:34 -

引用なし
パスワード
   みなさん、こんばんは。
再送です。久しぶりのランダムファイルで勘違いしてたところもあったので・・。


>の全部が分からない訳ではないんでしょ。
>自分で書いたコードを提示して、
>どこが分からないのかを書きましょう。
私もそう思います。

例えば、HANAさんの例を具体的にして、標準モジュールに
'======================================
Type db1
  工事番号 As String * 5
  工番2 As String * 2
  発注者 As String * 36
  End Type
'====================================
Sub mk_sample_file()
  On Error Resume Next
  Const fllen = 43
  Dim flno As Long
  Dim rec As db1
  Dim KoujiNO As Variant
  Dim kouban2 As Variant
  Dim hachu As Variant
  KoujiNO = Array("00001", "00010", "00030")
  koubann2 = Array("01", "10", "20")
  hachu = Array("宇多田ヒカル", "浜崎あゆみ", "中島美嘉")
  flno = FreeFile
  Kill ThisWorkbook.Path & "\db1.dat"
  Open ThisWorkbook.Path & "\db1.dat" For Random As #flno Len = fllen
  For idx = LBound(KoujiNO) To UBound(KoujiNO)
   With rec
     .工事番号 = KoujiNO(idx)
     .工番2 = koubann2(idx)
     .発注者 = hachu(idx)
     End With
   Put #flno, , rec
   Next idx
  Close #flno
End Sub
とすれば、レコード長=43のランダムファイルが作成されます。

これを
ユーザーフォーム(Userform1)の
コンボボックス(ComboBox1)に反映させるには

Useform1のモジュールに
'===================================================
Private Type db2
  工事番号 As String * 5
  工番2 As String * 2
  発注者 As String * 36
  End Type
'==================================================
Sub read_sample_file()
  On Error Resume Next
  Dim flno As Long
  Dim rec As db2
  Dim idx As Long
  Const fllen = 43
  flno = FreeFile
  ComboBox1.ColumnCount = 2
  Open ThisWorkbook.Path & "\db1.dat" For Random As #flno Len = fllen
  For idx = 1 To LOF(flno) / fllen
   Get #flno, , rec
   With rec
     MsgBox "工事番号 ---" & .工事番号 & vbCrLf & _
        "工番2  ---" & .工番2 & vbCrLf & _
        "発注者  ---" & .発注者
'     確認のため表示させました。↑実際は削除
     ComboBox1.AddItem .工事番号
     ComboBox1.List(idx - 1, 1) = .工番2
     End With
   Next
  Close #flno
End Sub
'==========================================================
Private Sub UserForm_Initialize()
  Call read_sample_file
End Sub


新規ブックにユーザーフォームとコードをコピーして確認してください。
但し、一度保存してから実行してください(Thisworkbook.Pathを使っているので)。
0 hits

【31051】ランダムファイルからのコンボボックスへのアイテム追加 HANA 05/11/10(木) 9:55 質問
【31103】Re:ランダムファイルからのコンボボックス... Jaka 05/11/11(金) 16:34 発言
【31145】Re:ランダムファイルからのコンボボックス... HANA 05/11/12(土) 14:01 発言
【31146】Re:ランダムファイルからのコンボボックス... Kein 05/11/12(土) 14:45 発言
【31149】Re:ランダムファイルからのコンボボックス... よろずや 05/11/12(土) 17:03 発言
【31150】Re:ランダムファイルからのコンボボックス... ichinose 05/11/12(土) 17:34 発言
【31220】Re:ランダムファイルからのコンボボックス... HANA 05/11/15(火) 8:23 お礼
【31221】ごめんなさい やっぱりダメでした HANA 05/11/15(火) 9:03 質問
【31222】Re:ごめんなさい やっぱりダメでした ichinose 05/11/15(火) 9:34 発言
【31223】Re:ごめんなさい やっぱりダメでした HANA 05/11/15(火) 10:20 質問
【31263】Re:ごめんなさい やっぱりダメでした ichinose 05/11/16(水) 0:46 発言
【31264】大変勉強になりました HANA 05/11/16(水) 8:41 お礼

50477 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free