
No.4ベストアンサー
- 回答日時:
こんにちは
1000件ほどなら、データはcsv(カンマ区切りテキスト)ファイルにしておくといいと思います。エクセルで編集することも出来ますし。普通にopenして、Input #で、#1の方のような配列に、読み込みます。
--- こんなファイル
0,東
1,斎藤
2,大西
---
厳密にいうと、コードは前にゼロが付いたりしないかどうか(0012とか)、全角で間違えて入れないかどうか、また、名前データ内にカンマが入らないようにする、などの考慮が必要かもしれません。
---
ボタンを押したあとは、やはり#1の方のロジックでいけると思います。
No.3
- 回答日時:
私の勝手な見解を書きますが、題意には添わないかもしれないので、違うと思ったら無視してください。
LOOKUP関数は表計算ソフトのEXCELにしては、極めてデータベース系ソフト似の関数です。それならば、EXCELをデータベースとして扱ってみてはいかがでしょうか?
参考URLにEXCELにDAOで接続するスレがあります。
SQL文で問い合わせたら、すぐに結果が得られると思います。
それと、もし「ISAMドライバ」のエラーメッセージが出た場合はこちらを・・・
http://oshiete1.goo.ne.jp/kotaeru.php3?q=141615
http://oshiete1.goo.ne.jp/kotaeru.php3?q=407289
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=414739
No.2
- 回答日時:
次に考えるべき易しい方法は、コード-名前の対応を、テキストファイルで持ち、フィールド長を固定とし、いわゆるランダムファイルとして、持つ。
100人程度分を1レコードとする。(約10レコードに1000人分)。
そして処理が始まるときに、10レコードを読んで、メモリの配列に読みこむ。
そして名前を検索する時、配列を約1000要素総なめして探す。
他の方法では、VBからエクセルへ行くプログラム例は、手許にありますが、エクセルを開いたまま待たせて(終わらせないで次の氏名検索まで、もっといえばVBが終わるまで開いたままで)、VB側で処理する方法が、私には判らないです。
また他の方法で、検索の都度、1回1回CreateObject(("Excel.Application)して、エクセルへ渡って行くことが、適当なのかどうかも判らない。済みません。
No.1
- 回答日時:
Form1に2つTextBoxを貼り付ける。
Private Sub Text1_LostFocus()
Text1.Text = findn(Text1.Text)
End Sub
プロジェクト-標準」モジュールをクリックして
Module1に
Function findn(n)
Dim nmc(3), nm(3)
nmc(1) = "1": nmc(2) = "2": nmc(3) = "3"
nm(1) = "東": nm(2) = "斉藤": nm(3) = "大西"
For i = 1 To 3
If nmc(i) = n Then
findn = nm(i)
End If
Next i
End Function
実行して1か2か3を入れて、Text2へフォーカスを
移すと、1なら東、2は斉藤、3は大西がText1に
セットされます。
FormLoadか何かでText1.Text=""を入れておいてください。
但し上例は幼稚です。総なめで探しているからです。
この部分は、ファイルを構造化して検索を少ない比較回数
で行うようにしますが本題では略。
この回答への補足
即答ありがとうございます。実は本番で使う名前の数は1000件ありまして、配列で個々に定義するのは結構大変なのでもしできれば、別のワークシートで名前と番号の
定義してそこからデータを取ってくる形にしたいのですが
可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カウント数について
-
とあるプログラムを教えてほし...
-
VBSにてCSV読み込みし比較
-
CFileの使い方を教えてください
-
ファイルからビット単位での読...
-
バイナリデータの書き換え
-
掲示板の編集機能
-
ファイル内の(&H0A)を(&H0D0A)...
-
日本語を配列に収め、そして表...
-
BMPファイルの輝度を配列で表す
-
VBでLOOKUP機能
-
txtファイルの数字を計算
-
エクセルvbaでdocuworksprinter...
-
エクセルのプロパティーでセキ...
-
マインクラフトPCをプレイしよ...
-
エクセルでcsvファイルを開いて...
-
エクセルで複数のコメントのサ...
-
ExeclVBAユーザーフォームから...
-
VB6でのドラッグ&ドロップにつ...
-
Excel 相対パス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイト型のデータを16進表記で...
-
RGBのバイナリデータをCImageに...
-
DXFファイルをVBで取り込み、図...
-
バイナリファイルでOutOfMemory...
-
VBScriptの配列は、要素数を指...
-
テキストファイルを後ろから読...
-
ファイル入力のデータを構造体...
-
awk getlineをもう一度ファイル...
-
インデックスが配列の境界外で...
-
ファイルをメモリに出力する方法
-
配列操作について
-
VBAでテキストファイルの改行を...
-
バイナリファイルの一部分をカ...
-
バイナリ出力
-
bmpファイルの明暗の数値化の方法
-
Excel VBAで画像解析
-
CSVファイルによる検索の高速化
-
日本語混じりのファイルをラン...
-
VB6.0 MSFlexGridのMouseRowプ...
-
ファイル内の(&H0A)を(&H0D0A)...
おすすめ情報