- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2003でフォームを作成しています(2))
エクセル2003で社員名簿データを利用してフォームを作成する方法
このQ&Aのポイント
- エクセル2003でフォームを作成し、社員名簿データを利用してお金の使用状況をチェックする方法について解説します。
- 社員名簿データを使用してフォームを作成し、詳細画面フォーム上で検索ボタンを押すとリストボックスが表示され、該当者をクリックすると情報が表示されるようになっています。
- 判定額と総計を比較し、OKか否かを表示する仕組みも導入されています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>詳細画面フォーム上の検索ボタンを押すと、 社員名簿.xlsのデータを元に作成したリストボックスの貼り付いた 別フォームが開き、該当者をクリックすると別フォームは閉じられ、 詳細画面フォームに社員名簿の情報がそれぞれのテキストボックスに 反映される、ということがまずやりたいのです。 上記の説明文のどの部分がわからないのでしょうか? 他ブック(csvファイル)から特定の値に対するデータをリストから検索し、テキストボックスに表示する部分がわからないということなら、単純に詳細画面フォームのあるブックの隠しシートにVLOOKUP関数で値を引っ張ってきてこの値をテキストボックスに代入するのが、ファイルを開くことなく実行できるので実行速度の観点からもお勧めです。 ちなみに、シート内の文字を検索するマクロなら、以下のページが参考になると思います。 http://home.att.ne.jp/zeta/gen/excel/c04p42.htm
その他の回答 (1)
- MackyNo1
- ベストアンサー率53% (1521/2850)
回答No.2
>リストボックスの貼りついたフォームの該当者をクリックしたときの 該当者の社員番号を詳細画面フォームの番号のところに持ってきたい 名前と社員番号のリストがあるなら、単純に名前から社員番号を検索するだけで良いと思うのですが・・・ このようなケースでは、VBAコードだけですべての処理をするのではなく、たとえば非表示の作業用シートを作成して、ワークシート関数などエクセルの機能を有効活用するほうが、VBAコードを簡略化でき、マクロ実行時のパフォーマンスもあげられると思います。
質問者
お礼
わかりました。 非表示のシートを作成して関数を使った処理をしてみます。 ありがとうございました。
補足
>>詳細画面フォーム上の検索ボタンを押すと、 >>社員名簿.xlsのデータを元に作成したリストボックスの貼り付いた >>別フォームが開き、該当者をクリックすると別フォームは閉じられ、 >>詳細画面フォームに社員名簿の情報がそれぞれのテキストボックスに >>反映される、ということがまずやりたいのです。 >上記の説明文のどの部分がわからないのでしょうか? リストボックスの貼りついたフォームの該当者をクリックしたときの 該当者の社員番号を詳細画面フォームの番号のところに持ってきたい のですが、やり方がわからないのです。 社員番号の入った変数を別のフォームで使用する書き方が分かりません。 違うかもしれませんが、今社員番号が ---------------------- Sub リスト選択_Click() Dim i As Byte Dim SCode As String For i = 1 To 1 ListBox1.TextColumn = i SCode = S & ListBox1.Text Next i End Sub ---------------- SCodeの中にいるようなのですが…