一回も披露したことのない豆知識

先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。


ユーザーフォーム上に社員番号を打つと名前が表示される形の方法はありますか?

Private Sub txtEmpNo_AfterUpdate()
Dim empNo As String
Dim empName As String
' 社員番号を取得
empNo = txtEmpNo.Value
' 社員番号に対応する名前を取得
empName = GetEmpName(empNo)
' 名前をラベルに表示
lblEmpName.Caption = empName
End Sub

Function GetEmpName(empNo As String) As String
' 社員番号に対応する名前を取得する処理を実装
' ここでは仮に固定の名前を返す例を示す
Select Case empNo
Case "001"
GetEmpName = "山田太郎"
Case "002"
GetEmpName = "佐藤花子"
Case "003"
GetEmpName = "鈴木次郎"
Case Else
GetEmpName = "該当者なし"
End Select
End Function
このコード必要なツールは何ですか。具体的に教えていただけるととても助かります。回答の程宜しくお願いします。

A 回答 (2件)

こんにちは


先ずは回答ではありませんが・・・
教えて!Gooの使い方を改めて少し調べて見てください
(先人の方の例などを見るのも良いと思います)

プログラムなど処理系のご質問には 使用する言語、アプリケーション、バージョンなどや環境説明・手順やビフォアーアフターなどと
現在の躓いている所や(当該)作成コード、テスト結果なども合わせると
スムースに回答が得られるのではないでしょうか

回答への理解や疑問点は、回答者にお礼や補足するなどするのが早道ですよ
ただ、追加質問などは控えた方が良いでしょう

いずれにしましてもコミュニケーションの無いQ&A投稿が多い 
ご質問者様への回答は煩雑になりがちですし、回答しても無視されたと取られ 以降回答するのを控えたりされる傾向になると思います

本ご質問への回答
ExcelVBAでユーザーフォーム上での処理を指しているのであれば
各コントロールのオブジェクト名を合わせる必要があります

手順
Excelを開く
Altキー+F11キー同時押しでVBE(エディタ)を開く
挿入から UserForm1 を追加
ツールボックスから
(ツールボックスが表示されていない場合は表示からツールボックスを表示)
Label1 を追加
TextBox1 を追加
AfterUpdateを実行する為に 例 CommandButton1を追加

ご質問のコードすべてをUserFormモジュールに記載
(要:コントロールオブジェクト名 該当コードを変更)
例えば、既定の追加でコントロールを追加した場合(ご質問のコードで)
txtEmpNo を TextBox1 へ変更
lblEmpName を Label1 へ変更
*AfterUpdateなのでTextBox1からフォーカスが移るような
コントロールが必要(今回例はCommandButton1)

実行しTextBox1に社員番号を入力しCommandButton1を押下
Label1に結果表示

Function部分はご質問詳細が無い為の暫定例だと思われます
この部分の処理などは シートにマトリックス表(社員名簿)を作成する等しておけば VBAコードを触る事なくVLOOKUPなどの関数で取得する事が可能になりますね

さて・・・リアクションは?
    • good
    • 0

こんばんは



>このコード必要なツールは何ですか
えと・・・
・エクセルブックにユーザーフォームを用意(=設定)します。
・必要となるコントロールを配置し、その名称をコードに合わせておくか、またはコードを名称に合うように変更する。
・当該ユーザーフォームを表示するプログラムを実行
すれば、ひとまずは動くでしょう。

実際には、社員番号から名前を検索(?)する部分も実情に合わせて作成する必要があるでしょうし、正しくない番号を入力した際の処置なども記述しておく必要があるものと思われます。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報