2016年10月07日
エクセル(Excel),技,VBA,フォーム
ご購入は、リュミエリーナ認証正規販売店へ
マイクロソフトアクセスはこちら
人気ブログランキングへ
それからエクセルを開いてこのユーザーフォームを表示できるようにしましょう。
マクロで上記のように
Sub sample()
UserForm1.Show
End Sub
UserForm1.Showと記述してマクロを実行すると、
上記のようにエクセルシート上にユーザーフォームが出現します。今はこのユーザーフォーム
には何もVBAは記述してないので何も動きません。
とりあえずユーザーフォームの表示方法だけです。
イメージとしては「氏名」「部」「課」「性別」「入社年月日」を入力して「登録」ボタンを押すと
先ほどのエクセルシートの一番下か一番上に追加されて、フォームに入力されている
データが消去されるような動作を考えればいいということになります。
VBAのフォーム画面にして氏名の右側の枠をクリックすると上記のように選択されます。
その時に左側にある「プロパティ‐TextBox1というところがありますね。
ここからテキストボックスの名前がTextBox1ということが分かります。
「部」の右側はTextBox2・「課」の右側はTextBox3・性別の右側はTextBox4・
入社年月日の右側はTextBox5になっています。この名前はVBAを記述する際重要になります。
VBAというのはボタンにも記述できますし、テキストボックスにも記述できます。
ちなみにTextBox1にマウスをあわせてダブルクリックすると上記のようなTextBox1に
記述できるようにVBAが準備されます。今回はここには何も記述しませんので消してください。
今回VBAの記述をするのは「登録」ボタンです。登録ボタンをダブルクリックすると下記のような
画面になります。
Private Sub CommandButton1_Click()
ここにVBAを記述していきます。
End Sub
上記の内容を記述します。
Private Sub CommandButton1_Click() ‘これはマクロの名前です。ボタン1のマクロという意味
If TextBox1 = "" Then ‘もしテキストボックス1が空欄であった場合(氏名の入力されないとき)
MsgBox "氏名を入力してください" ‘氏名を入力してくださいというメッセージが出る
ElseIf TextBox2 = "" Then ‘テキストボックス2が空欄(部が未入力)の場合
MsgBox "部を入力してください" ‘部を入力してくださいというメッセージが出る
ElseIf TextBox3 = "" Then ‘テキストボックス3が空欄(課が未入力)の場合
MsgBox "課を入力してください" ‘課を入力してくださいというメッセージが出る
ElseIf TextBox4 = "" Then ‘テキストボックス4が空欄(性別が未入力)の場合
MsgBox "性別を入力してください" ‘性別を入力してくださいというメッセージが出る
ElseIf TextBox5 = "" Then ‘テキストボックス5が空欄(入社日が未入力)の場合
MsgBox "入社年月日を入力してください" ‘入社年月日を入力してくださいという
メッセージが出る
End If ‘ここでIF文の終了
Sheets("担当者一覧").Select ‘エクセルの「担当者一覧」シートを選択する
Rows("2:2").Select ‘2行目を選択
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ‘2行目に挿入
Sheets("担当者一覧").Range("a2").Value = UserForm1.TextBox1 ‘テキストボックス1を氏名にコピー
Sheets("担当者一覧").Range("b2").Value = UserForm1.TextBox2 ‘テキストボックス2を部にコピー
Sheets("担当者一覧").Range("c2").Value = UserForm1.TextBox3 ‘テキストボックス3を課にコピー
Sheets("担当者一覧").Range("d2").Value = UserForm1.TextBox4 ‘テキストボックス4を性別にコピー
Sheets("担当者一覧").Range("e2").Value = UserForm1.TextBox5 ‘テキストボックス5を入社年月日にコピー
UserForm1.TextBox1 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox2 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox3 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox4 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox5 = clearcontens ‘テキストボックス1を消去
End Sub ‘ボタン1のVBAを終了する
このマクロを実行してみてください。記入したデーターが一番上に追加されましたか。
そしてフォームの表示がすべて消えましたか?
ユーザーフォームはこのように使用します。
マイクロソフトアクセスはこちら
人気ブログランキングへ
それからエクセルを開いてこのユーザーフォームを表示できるようにしましょう。
マクロで上記のように
Sub sample()
UserForm1.Show
End Sub
UserForm1.Showと記述してマクロを実行すると、
上記のようにエクセルシート上にユーザーフォームが出現します。今はこのユーザーフォーム
には何もVBAは記述してないので何も動きません。
とりあえずユーザーフォームの表示方法だけです。
イメージとしては「氏名」「部」「課」「性別」「入社年月日」を入力して「登録」ボタンを押すと
先ほどのエクセルシートの一番下か一番上に追加されて、フォームに入力されている
データが消去されるような動作を考えればいいということになります。
VBAのフォーム画面にして氏名の右側の枠をクリックすると上記のように選択されます。
その時に左側にある「プロパティ‐TextBox1というところがありますね。
ここからテキストボックスの名前がTextBox1ということが分かります。
「部」の右側はTextBox2・「課」の右側はTextBox3・性別の右側はTextBox4・
入社年月日の右側はTextBox5になっています。この名前はVBAを記述する際重要になります。
VBAというのはボタンにも記述できますし、テキストボックスにも記述できます。
ちなみにTextBox1にマウスをあわせてダブルクリックすると上記のようなTextBox1に
記述できるようにVBAが準備されます。今回はここには何も記述しませんので消してください。
今回VBAの記述をするのは「登録」ボタンです。登録ボタンをダブルクリックすると下記のような
画面になります。
Private Sub CommandButton1_Click()
ここにVBAを記述していきます。
End Sub
上記の内容を記述します。
Private Sub CommandButton1_Click() ‘これはマクロの名前です。ボタン1のマクロという意味
If TextBox1 = "" Then ‘もしテキストボックス1が空欄であった場合(氏名の入力されないとき)
MsgBox "氏名を入力してください" ‘氏名を入力してくださいというメッセージが出る
ElseIf TextBox2 = "" Then ‘テキストボックス2が空欄(部が未入力)の場合
MsgBox "部を入力してください" ‘部を入力してくださいというメッセージが出る
ElseIf TextBox3 = "" Then ‘テキストボックス3が空欄(課が未入力)の場合
MsgBox "課を入力してください" ‘課を入力してくださいというメッセージが出る
ElseIf TextBox4 = "" Then ‘テキストボックス4が空欄(性別が未入力)の場合
MsgBox "性別を入力してください" ‘性別を入力してくださいというメッセージが出る
ElseIf TextBox5 = "" Then ‘テキストボックス5が空欄(入社日が未入力)の場合
MsgBox "入社年月日を入力してください" ‘入社年月日を入力してくださいという
メッセージが出る
End If ‘ここでIF文の終了
Sheets("担当者一覧").Select ‘エクセルの「担当者一覧」シートを選択する
Rows("2:2").Select ‘2行目を選択
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ‘2行目に挿入
Sheets("担当者一覧").Range("a2").Value = UserForm1.TextBox1 ‘テキストボックス1を氏名にコピー
Sheets("担当者一覧").Range("b2").Value = UserForm1.TextBox2 ‘テキストボックス2を部にコピー
Sheets("担当者一覧").Range("c2").Value = UserForm1.TextBox3 ‘テキストボックス3を課にコピー
Sheets("担当者一覧").Range("d2").Value = UserForm1.TextBox4 ‘テキストボックス4を性別にコピー
Sheets("担当者一覧").Range("e2").Value = UserForm1.TextBox5 ‘テキストボックス5を入社年月日にコピー
UserForm1.TextBox1 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox2 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox3 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox4 = clearcontens ‘テキストボックス1を消去
UserForm1.TextBox5 = clearcontens ‘テキストボックス1を消去
End Sub ‘ボタン1のVBAを終了する
このマクロを実行してみてください。記入したデーターが一番上に追加されましたか。
そしてフォームの表示がすべて消えましたか?
ユーザーフォームはこのように使用します。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/5513303
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック