検索
タグクラウド
プロフィール
yoshimatsuさんの画像
yoshimatsu
60過ぎのおっちゃんです。同じ年齢層の中ではそこそこパソコンが使える方だと自負しています。今まで会社等で学んだ知識等を紹介していきたいと思います。

広告

posted by fanblog

2016年10月07日

エクセル(Excel),技,VBA,フォーム

ご購入は、リュミエリーナ認証正規販売店へ


マイクロソフトアクセスはこちら

人気ブログランキングへ





それからエクセルを開いてこのユーザーフォームを表示できるようにしましょう。

フォーム4.png
マクロで上記のように
Sub sample()

UserForm1.Show

End Sub

UserForm1.Showと記述してマクロを実行すると、


フォーム5.png
上記のようにエクセルシート上にユーザーフォームが出現します。今はこのユーザーフォーム

には何もVBAは記述してないので何も動きません。

とりあえずユーザーフォームの表示方法だけです。

イメージとしては「氏名」「部」「課」「性別」「入社年月日」を入力して「登録」ボタンを押すと

先ほどのエクセルシートの一番下か一番上に追加されて、フォームに入力されている

データが消去されるような動作を考えればいいということになります。

フォーム6.png

VBAのフォーム画面にして氏名の右側の枠をクリックすると上記のように選択されます。

その時に左側にある「プロパティ‐TextBox1というところがありますね。

ここからテキストボックスの名前がTextBox1ということが分かります。

「部」の右側はTextBox2・「課」の右側はTextBox3・性別の右側はTextBox4・

入社年月日の右側はTextBox5になっています。この名前はVBAを記述する際重要になります。

VBAというのはボタンにも記述できますし、テキストボックスにも記述できます。

フォーム7.png

ちなみにTextBox1にマウスをあわせてダブルクリックすると上記のようなTextBox1に

記述できるようにVBAが準備されます。今回はここには何も記述しませんので消してください。

今回VBAの記述をするのは「登録」ボタンです。登録ボタンをダブルクリックすると下記のような

画面になります。

フォーム8.png

Private Sub CommandButton1_Click()

ここにVBAを記述していきます。

End Sub

フォーム9.png

上記の内容を記述します。

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
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: