• ベストアンサー

ファイの一部をコンボボックスに表示したい

VB6をはじめて利用します。 競馬ソフトを作ってみたくて、友人からVB6を購入したのですが全くわかりません。 データのダウンロードはなんとかできて、 DATA\RAというフォルダとDATA\SEというフォルダにそれぞれファイルが入っています。 DATA\RAというフォルダには、 「RA20050105中山01R.txt」 「RA20050105中山02R.txt」 「RA20050105中山03R.txt」     ・     ・ 「RA20050105京都01R.txt」 「RA20050105京都02R.txt」 「RA20050105京都03R.txt」 というように、開催日と開催場所、レース番号があるtxtファイルがあります。 メインフォームのコンボボックスに 開催日を選択する日付だけを表示(日付の新しい順にソートして表示させたいです。)させたいのですが、 どうしていいのかわかりません。 わからないことだらけで、何のためにVBを買ったか・・・という状態ですが、もう少し頑張ってみたいと思います。 ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Wizard_Zeroと申します。 Dir関数(VB標準)を使うことでフォルダにある複数のファイルを取得することが出来ます。 ============================ Dim strFile As String '最初のファイル名を取得 strFile = Dir("HogeHoge\*") '全てのファイル名を取得するまで繰り返す Do Until strFile = "" 'ここでファイル名から日付部分を取り出す処理 'Left関数、Right関数、Mid関数、Instr関数など Combo1.AddItem strFile '次のファイル名を取得 strFile = Dir Loop ============================ ソートはコンボボックスのSortedプロパティをTrueにしておけば、自動的に並べ替えが行われます。 各関数の詳細はMSDNを参照されると良いかと。

shunsan_y
質問者

お礼

有り難うございました。 なんかとコンボボックスに格納することが出来ました。 ただ、同じ日付が何個も表示されてしまいます。(涙) SortedプロパティをTrueにしてみましたが、日付が古い順になってしまいました。 みなさんに聞いてばかりというわけにもいきませんので、もう少し調べて格闘してみます。 やはり僕には無理なのかも・・・・

その他の回答 (1)

  • keikan
  • ベストアンサー率42% (75/176)
回答No.1

Helpを参照して Folder オブジェクトのSubFolders プロパティ を取り出してください。 SubFoldersにファイル名の集合が帰ってきますので この集合を元にInstr等で開催日の物だけ抜き出してください その後に再付けの新しい順(?)にソートさせた集合をListBox等に入れてやればいいと思います。

shunsan_y
質問者

お礼

有り難うございました。 なんかとコンボボックスに格納することが出来ました。 ただ、同じ日付が何個も表示されてしまいます。(涙) もう少し調べて格闘してみます。

関連するQ&A

  • コンボボックスに日付を表示する

    現在、VB.netを勉強中です。 コンボボックス内に今日から一週間分の日付を表示したいのですが、上手く行きません。 Dim dtToday As DateTime = DateTime.Today ComboBox1.Items.Add(dtToday.ToString()) と書いたところ現在の日付を取得しコンボボックス内に 2013/5/28 00:00 と表示されています。 これを時刻を表示させず(2013/5/28 のみ表示)、For文を用いて一週間分表示させたのですが、どのようにすればよいでしょうか? 分かる方がいれば、よろしくお願いします。

  • EXCELコンボボックスに表示されません。

    EXCELでユーザーフォームの中にコンボボックスを作りました。日付を選択したいので「11月1日、11月2日・・・」とズラズラ表示されるのですが選択するとコンボボックスに表示されるのは「38670」などの数字が表示されます。ここにちゃんと日付を表示するにはどこを変えたらいいでしょうか? やり始めたばかりの初心者で質問内容が幼稚かもしれませんが、宜しくお願いします。

  • VBでコンボボックスをテーブルのように扱いたい

    VB.net 2010での質問です。 外部テキストファイルを読み込んで、フォーム上のコンボボックスに入れるのは簡単にできましたが、 ボタンを押したときに、選んだコンボボックスの該当データのうち一部だけを取り出して他データとからめつつ処理して表示させたいのです。 テキストファイルが以下のようになっています。データ件数は多くはありません。 阿部,北海道,10001,2001/05/01 山崎,東京都,11111,2003/09/25 ボタンを押した時には、別のテキストボックスに 山崎 - 10001 と表示させたいのです。贅沢を言えば、コンボボックスには人名のみが表示されるようにできれば素晴らしいです。 どうかよろしくお願いします。

  • VB.NET コンボボックスの表示について

    vb2010で作成しています。 コンボボックスの表示 ⇒ 更新をどう処理するのか分かりません。 例えば下記のようなフルーツテーブルがあったとします。 ・リンゴ ・ミカン ・モモ テーブルから「ミカン」を取得し、コンボボックスへ表示する所までは出来ました。 その後に、「ミカン」から「リンゴ」に変換したい場合、テーブルからコンボボックスへデータを渡すと、 ・ミカン ・リンゴ ・ミカン ・モモ と「ミカン」が2個表示されてしまいます。 こういう場合どのようにプログラムを作成するのがベストなのでしょうか? 自分で試したのは、ミカンの情報を保持したまま、一旦コンボボックスをクリアし、 そのあとミカン以外のデータを再度読み込み、コンボボックスへ渡すようにしました。 結果は ・ミカン ・リンゴ ・モモ となります。 無駄な処理をしているとしか思えず、他に良い方法があるように思い、質問させて頂きました。 VB.NETは現在手探りで作っている感じで分からない事が多いのですが、分かる方がいらっしゃったら教えて下さい。 よろしくお願い致します。

  • コンボボックスに今日を含む、4日前までの日付を表示したい

    ただいまVB6.0を勉強中です。 コンボボックスについて質問なのですが、 フォームを開いたらコンボボックスに 今日から(フォームを開いたときから)数えて4日前までの日付を、 ドロップダウン形式で表示したいのですが・・・。 どのような考え方、コーディングをすればよいでしょうか? 理想は下記のような感じです 2009-10-06▽(フォームを開いた日) 2009-10-05 (1日前) 2009-10-04 (2日前) 2009-10-03 (3日前) 2009-10-02 (4日前) 今現在、フォームを開いた際に コンボボックスに本日の日付しか表示することしかできません。 Private Sub Form_Load() ComboBox1 = Format(Now, "yyyy-mm-dd") End Sub ご教授のほど、よろしくお願いいたいます

  • VBA コンボボックス表示について

    VBA初心者です。 途中まで作ってみたのですが、コンボボックスを表示するところで エラーが出てどうしても先に進むことができません。 ご指導お願い出来ますでしょうか。 ■元データtxtファイル A列    B列  C列  D列  E列  F列  G列 氏名   性別 評価1 評価2 評価3 評価4 評価5 ---------------------------------------------------- 山田太郎 男  A   AB 木下花子 女  B   BA 水野四郎 男  B   BB 山瀬次郎 男  C   CA 野山達子 女  A   AA 出側三郎 男  D   DB ・ ・ ■EXCELファイル(txtファイルのデータを反映させるEXCEL) シートは以下2つあります。 (1)「全体(sheet1)」:txtファイルのデータを反映させるシート    ※例えば、B2には評価1がAの数の合計。 (2)「評価ごとの雛型(sheet2)」:評価1の評価(A、B、C・・)ごとにデータを反映させるシート    ※例えば、評価1が「A」のデータを抽出し、雛型用のシートをコピーし、    シートの末尾に挿入、シート名を「A」に変更し、    B3には評価1がAの男の数の合計を入れる。 マクロの流れは、、 1.マクロが埋め込まれているEXCELを開き「ボタン」をクリック 2.テキストファイル(A)を「参照」で読込み、 3.続いてデータを反映させるEXCEL(B)を「参照」で読込み、 4."データを反映させますか?⇒はい"で「全体(sheet1)」に反映させ、 5.続いてコンボボックス(プルダウン)を表示し選択する。←★ココでエラーとなり先に進みません。 6.EXCEL(B)の「雛型」シートを末尾にコピーしデータを反映 ←ここからは自力で頑張ります。 ★教えて頂きたい内容 作りかけのマクロです。http://cocolodiary.com/sample.zip Call eSelect で呼び出したときに、 元データtxtファイルのC列をコンボボックス(プルダウン)で表示するところで エラーになってしまいます。 ソースの★印の箇所についてご指導頂けますでしょうか。 どうぞよろしくお願い致します。

  • コンボボックスにデータを反映させたい

    VB6.0を使っています。 あらかじめメモ帳にデータをまとめて保存しておいて、そのファイルのデータをコンボボックスの選択肢に反映させたいのですがどうすればいいかわかりません。 宜しくお願いします。

  • データと直結したコンボボックスについて

    初めて質問します。 VB6とオラクルでの開発でコンボボックスを使います。 ユーザーの要望は、途中まで入力した内容に合うデータをコンボボックスのリストに表示して欲しいとのことなのですが、VBに入っている通常のコンボボックスで対応できるんでしょうか? また、出来なければ利用可能なツールなどがありましたら教えてください。

  • VBでコンボボックスとテキストボックスの連係

    VBでフォームにデータコンボボックスとテキストボックスを一つづつ作り、データコンボボックスで値を選択し、その値に対する値をテキストボックスに表示させたいんですがどうすればいいでしょうか? データコンボボックスで選択する元になるテーブルは ID | 商品 1 | みかん 2 | ばなな 3 | りんご と、上記のような形のテーブルをもちいています。 例えばデータコンボボックスで「1」を選択した場合テキストボックスに「みかん」と表示させたいです。

  • コンボボックスの表示は最大何行?

    いつもお世話になります。 VB.NET2003で開発しています。 いままで全然気にしておらず、質問が来て初めて気がつきましたが、 現在使っているコンボボックスに現れるデータはすべて8個なんですね。 これをもっと多くするにはどうしたらいいのでしょうか? また最大表示出来る数はいくらなのでしょうか? 初歩的な質問で恐縮ですがよろしくお願いします。

専門家に質問してみよう