初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

中級者のためのエクセルマクロVBA:Accessに登録するユーザーフォームの作成

登録機能を作る


予定通り登録機能です。またもや同じく商品テーブルを使います。この商品テーブルにエクセルで入力した商品データをAccessデータベースへ登録するマクロを作ります。今回はユーザーフォームを使ってやってみましょう!

ユーザーフォームもオブジェクト!?


このブログではもう同じみのお話ですが、何度も何度も言ってきました。

オブジェクトを理解すること
オブジェクトを正しく指定すること

この2つが出来ていればエクセルマクロVBAは超簡単にマスターできる。と。
今回利用するユーザーフォームというのも勿論「オブジェクト」です。別に特別なことは何もありません。ユーザーフォームオブジェクトを作って、それを「操作」するだけです。ユーザーフォームオブジェクトは比較的自由に自分でオブジェクト構造を作っていくことができます。

ユーザーフォームを作る


早速ユーザーフォームを作りましょう。開発タブからVBEを開き、プロジェクトエクスプローラのプロジェクトを右クリックして挿入からユーザーフォームを選択します。


f:id:drumer2sh:20141001173239p:plain


そうすると、新しくユーザーフォームが作成されるはずです。


f:id:drumer2sh:20141001173246p:plain


これが、新しいオブジェクトですね。標準モジュールと何も変わりません。このユーザーフォームオブジェクトにもプロパティウィンドウから名前を付けておきましょう。オブジェクトに名前をつけて操作するは鉄則でしたね。商品登録フォームなのでfrmProductRegistとでもしておきます。さらにフォームのタイトルのプロパティであるCaptionも「商品登録フォーム」としておきます。


f:id:drumer2sh:20141001173253p:plain


後はこのユーザーフォームに登録するための入力フォームをどんどん追加していきます。もちろん、各フォームにはちゃんとオブジェクトの名前を付けてあげましょう。こうしてできたのが、下のやつです。


f:id:drumer2sh:20141001173301p:plain


いかがでしょうか?以外とここまでは、すんなりだと思います。(だってコード書いてないもんね。)では、このフォームをエクセルから表示させてみます。エクセルのシートに「商品登録」というボタンを追加して、そのボタンを押すとこのフォームが表示されるようにしてみましょう。


f:id:drumer2sh:20141001173308p:plain


こんな感じですね。前回のブログで作った検索フォームの横にボタンをちょこっと付けました。後はこのボタンをダブルクリックするとボタンを押したときに実行されるイベントプロシージャが作成されます。後はこのイベントプロシージャの中にフォームオブジェクトを表示する処理を書けば終わりです。

ではコード。

Private Sub btnRegistFormLoad_Click()
    
    frmProductRegist.Show
    
End Sub


はい、終わり、これでボタンを押すとフォームが出力されます。さらに×ボタンを押せばフォームが閉じます。プロシージャ名のbtnRegistFormLoadは、ボタンのオブジェクト名です。自分で自由に設定しましょう。後はfrmProductRegistオブジェクトのShowメソッドを実行するだけです。


ほんとこれだけ。


いかがでしょうか?非常に簡単だと思います。フォームオブジェクトって実は非常に自由度が高いオブジェクトなんですね。次回は
このフォームオブジェクトの登録ボタンを押したらAccessデータベースへ商品データを登録するマクロを作ります。


本格的な感じですね。


今日はここまで!


かしこ