エクセルVBAユーザーフォーム作り方概要
youtube動画が思いのほか高評価で現在4万回以上再生されています。世間的には、大したことないかもしれませんが、私的には、こんなにも再生されていてとても嬉しい限りです。
詳細は、youtube当動画に委ねますが、概要を説明します。客先を選択し、品番を選択し、個数を入力し、登録ボタンをクリックすると、ユーザーフォーム情報がシート状に転記されます。ちょっとした受注フォームです。受注日は、デフォルトでは本日の日付、客先はN列の情報、品番はJ列の情報を選択できるようになっています。品番J列を選択するとその右のK列の商品名が、ラベルに表示され、同様に単価も表示されます。
ユーザーフォームのフォームの部品
userform1の部品一覧です。
赤文字の部品をツールボックスからフォーム上に設置しています。
userform1のコード
userform1のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
'コンボボックス2に変化があったら動くプロシージャ Private Sub ComboBox2_Change() 'MsgBox ComboBox2.Text Dim i As Integer For i = 3 To 17 If ComboBox2.Text = Cells(i, 10) Then lblShohinmei.Caption = Cells(i, 11) lblTanka.Caption = Cells(i, 12) End If Next i End Sub '登録ボタンをクリックしたら Private Sub CommandButton1_Click() Dim row_no As Long For row_no = 3 To 200 If Cells(row_no, 2) = "" Then Exit For End If Next row_no 'MsgBox row_no '個数に数字以外の文字が入っていたらの処理 If IsNumeric(UserForm1.TextBox2) = False Then MsgBox "個数は数字を入れてください" Exit Sub End If '客先が選択されていない場合の処理 If UserForm1.ComboBox1.Text = "選択してください" Then MsgBox "客先を選択してください" Exit Sub End If '品番が選択されていない場合の処理 If UserForm1.ComboBox2.Text = "選択してください" Then MsgBox "品番を選択してください" Exit Sub End If Cells(row_no, 2) = UserForm1.TextBox1 Cells(row_no, 3) = UserForm1.ComboBox1 Cells(row_no, 4) = UserForm1.ComboBox2 Cells(row_no, 5) = UserForm1.lblShohinmei Cells(row_no, 6) = UserForm1.lblTanka Cells(row_no, 7) = UserForm1.TextBox2 Cells(row_no, 8) = UserForm1.lblTanka * UserForm1.TextBox2 UserForm1.ComboBox1.Text = "選択してください" UserForm1.ComboBox2.Text = "選択してください" UserForm1.TextBox2 = "" End Sub Private Sub UserForm_Initialize() Dim i As Integer For i = 3 To 5 ComboBox1.AddItem Cells(i, 14) Next i For i = 3 To 17 ComboBox2.AddItem Cells(i, 10) Next i TextBox1.Text = Date End Sub |
Sheet1のコード
userform1を表示するためのsheet1のコードです。