「エクセルVBA」コマンドボタンをフォームに植えてみた

( ノ゚Д゚)こんばんは!こんにちは!おやすみなさい!おはようございます! とっちーです。

 

 

ユーザーフォームで作成する、お手製ダイアログですが

 

今回は実行ボタンのコマンドボタンを植えたいと思います。あ、設置してみたいと思います。

 

 

 

新しいことにチャレンジするって素晴らしいと思います。

 

 

ツールボックス

 

 

VBEの「ツールボックス」の表示方法です。表示されていることもありますが、非表示の場合もあります。

 

VBEの「ツールボックス」の表示方法になります。

 

 

VBEの「表示」項目を選択すると「メニュー」が表示されます。

 

そこに「ツールボックス」がありますので選んでみましょう。左クリックです。

 

 

「ツールボックス」が表示されます。

 

 

 

 

上図は、ツールボックスに表示されているものになります。「ツールボックス」ダイアログの幅を変更すると、「コマンド」の並びは変わりませんが表示される段は変更されます。

 

(はてな君)
いろんなのがあるんだね。

 

 

(えっちゃん)
沢山あるでしょ、はてなくん、一つ一つ覚えようね

 

(はてな君)
うん

 

コマンドボタン

 

フォームに自身の「フォームを閉じるプログラム」を実行させるために「コマンドボタン」を設置してみます。

 

 

今回は、「フォーム」を閉じる「ボタン」を作ってみます。

 

(はてな君)
閉じるボタン?

 

(えっちゃん)
フォームを閉じるボタンさ

 

 

作成したフォーム上に今度は、「コマンドボタン」のオブジェクトを追加します。

 

(はてな君)
コマンドボタンってオブジェクトなんだね

 

(えっちゃん)
う~ん、プロパティと呼んでもいいけど、何に対してか?か何かに対してかの違いだから、例えば、中間管理職としたら、貴方は上司に会ってる間は部下でしょ、部下に逢っている間は上司だけど、そんな感じだね

 

ツールボックスからコマンドボタンを選択

 

表示されている「ツールボックス」の中から、コマンドボタンのアイコンを選択します。

 

ツールボックスが表示されていない場合は、ツールボックスを表示しますね。

 

 

 

 

 

(はてな君)
コマンドボタンだね

 

 

(えっちゃん)
さっそく、覚えてみたんだね、さすが

 

 

 

ツールボックスで選択すると、フォーム上に配置出来るようになります。

「+」の表示は、設置する左上の位置を選択するように指示されています。任意の位置を選択してみましょう。

 

 

 

次に選択位置が決まったら、マウスポインタを任意(設置したい大きさか範囲まで)の場所までドラッグしましょう。

 

  

 

フォーム上に「CommandButton1」と明記されたものが現れました。

 

これが、フォーム上に設置したコマンドボタンの初期状態です。

 

 

ただ、このままではボタンに表示つまりCaption名が初期設定のままで、何のボタンなのか不明です。

 

 

Caption名を変更して操作しやすくしましょう。

 

Caption名を変更する

 

「CommandButton1」のCaption名を変更してみます。

 

(えっちゃん)
変更する場所は

 

 

(はてな君)
プロパティウインドウのCaptionの右側です~

 

 

(えっちゃん)
あったり~、さすが、はてなくん

 

 

 

プロパティウインドウのCaptionに記載されている、内容を変更してみます。

 

 

Caption名は、一目で何かわかるようにしておきましょう。

 

プロパティウインドウのCaptionの右側の内容を削除します。

 

➊Captionに表示されている文字列の右端をマウスで選択(左クリック)すると「|」カーソルが点滅します。

 

➋キーボードの「Delキー」を使用することにより、Captionに表示されていた内容は消去されます。

 

作上の方法は、➌Captionに表示されている文字列を範囲選択して、「Delキー」で消去しても大丈夫です。慣れているやり方で、削除しましょう。

 

Captionの内容を削除すると、作成した「コマンドボタン」の➍表示名もなくなります。

 

コマンドボタンの表示名の削除方法は、他にもあります。

 

コマンドボタンに表示されている文字列を範囲指定しても削除可能です。

 

 

 

➊フォーム内コマンドボタンに表示されているテキストの語尾を選択します。

 

キーボードのDelキーで削除します。もしくは、コマンドボタンに表示されている文字を➂ドラッグしてDelキーで削除しても大丈夫です。

 

新しい表示名(Caption)を入力

 

表示名を消したままでは、設置したコマンドボタンが何をするのか不明です。

 

 

必ず、表示名を記述しておきましょう。

 

 

コマンドボタンの設置の目的は、フォームを閉じる作業なので、➎「終了」とCaption名を変更します。

 

 

Captionの文字を変更すると、コマンドウィンドウのユーザーフォームの表示名も変わります。

 

 

オブジェクト名の変更

 

コードを読み書きしやすくするために、オブジェクト名の変更をしておきます。

 

プロパティウインドウのオブジェクト名の内容を変更することは、コードを書きやすく修正しやすくするためです。

 

 

後工程を考慮したうえで名前の変更をしましょう。今回は「CB1」と変更してみました。

 

 

 

プロパティウインドウのオブジェクト名を変更することにより、VBAを作成するコードの見出しも変更されます。

 

コマンドボタンにプログラムを追加

 

コマンドボタンにしてもらいたい動作を伝えましょう。

 

 

コマンドボタンを押すと、フォームを閉じるという作業をしてもらいたいと思います。

 

 

コードウインドウを表示したいので、コマンドボタンをダブルクリックしてみましょう。

 

 

 

コードウィンドウが表示され、コマンドボタンCB1がClickされたときにどうするかを記入するコードの頭とお尻が表示されています。

 

頭とお尻の間に、フォームを閉じるというプログラムを記述してみましょう。

 

Unload

 

フォームを非表示、閉じるときに使用するコードです。

 

 

書式

Unload オブジェクト名

内容

表示されているフォームオブジェクトを閉じます。

 

 

今回の場合は、「Unload UF1」になります。

 

 

コードを書き終えたら、コードウインドウを閉じておきましょう。

 

VBEの標準バーにある「Sub/ユーザーフォーム」実行を選択します。

 

上図、赤枠の部分が「Sub/ユーザーフォーム」実行コマンドになります。

 

 

エクセルシートの上に作成した➊フォームが表示されます。

 

 

次に、終了ボタンを押してみましょう。

 

 

 

VBEの設定画面に戻ります。

 

コマンドボタンへの作業プログラムの設定が出来ました。

 

 

シート上からフォームを表示させる

 

 

VBEを起動して、プログラムを起動するよりも、シート上にボタンを設置してフォームを呼び出したほうが効率的です。

 

シート上に設置するボタンの作成方法をお伝えします。

 

開発タブ内の「デザインモード」のコマンドが選択されている(背景がうす緑)か確認しましょう。「デザインモード」が選択されていない場合は「デザインモード」を選択しておきます。

 

 

選択されていることが確認できましたら作成した「コマンドボタン」の上にマウスポインタを重ね右クリックをしてください。

 

 

 

➊開発タブ内にある➋「挿入」コマンドを選択します。

 

今回は、表示されたメニュー内の➌ActiveXのコマンドボタンを選択してみます。

 

 

 

 

シート上の任意の場所で、➊ドラッグしてみましょう。

 

 

ドラッグ範囲に➋コマンドボタンが設置されます。

 

設置した状態のコマンドボタンでは、何をさせたいのか不明です。

 

必ずCaption名を変更しておきましょう。

 

 

 

 

➌作成したコマンドボタンにマウスポインタを重ねて右クリックします。

 

 

メニューが表示されますので➍プロパティを選択して左クリックしましょう。

 

 

プロパティダイアログが表示されます。

 

 

項目内Captionの項目に記載されている内容を「人が判断しやすい」ように変更しましょう。

 

 

今回は「起動」と表示させます。

 

 

プロパティのCaptionの内容を「起動」に改めてみました。

 

 

次にオブジェクト名も変更しておきます。

 

オブジェクト名は、重なりが無いようにしておきましょう。重なりがあるとプログラムは正常に作動しなくなります。

 

 

 

➑プロパティのオブジェクト名の内容欄を➒任意の名前に変更します。

 

 

 

シート上のコマンドボタンにコードを記述します。

 

 

 

開発タブの「デザインモード」コマンドが選択されていることが確認し、シート上に作成したコマンドボタンにマウスポインタを重ねてダブルクリックします。

 

 

VBEが起動したうえに、コードウインドウも表示されます。

 

もし不要なコードが記述されていたら削除をしておきましょう。

 

 

 

 

表示されているコードの空白部分にフォームを表示するコードを記述します。

 

 

フォームを表示させるコードは、オブジェクト名.showになります。

 

 

今回は、UF1.showと記述します。

 

最後にVBEを閉じておきましょう。

 

シート上からフォームを表示させる

 

 

フォームをシート上に作成したコマンドボタンで表示させたいと思います。

 

 

 

開発タブ内のデザインモードが選択されていないか、確認をしましょう。

 

もし➊選択されている状態ならば、左クリックをして選択を解除しておきます。

 

作成した➋シート上のコマンドボタンを選択(左クリック)してみましょう。

 

(はてな君)
あ、表示された。

 

 

 

作成したユーザーフォームが表示されます。

 

今回は、終了ボタンでフォームを閉じるようにさせていますので、終了ボタンを押してみます。

 

 

 

 

 

表示されていたフォームが閉じられて、シートの表示になりました。

 

 

 

まとめ

 

今回は、フォームにコマンドボタンを設置する方法をお伝えしてみました。

 

また、シート上からのフォームの呼び出し方法もお伝えすることが出来ました。

 

シート上にボタンを設置しボタンを押すと作成したフォームが起動する。

 

そして、フォームのボタンを押すとフォームが終了する。

 

そんな動作は、すべてもっと複雑な動作の基本になると思います。

 

簡単な動作のプログラムから慣れていって、複雑なプログラムを楽しんで作成できるようになりましょう。

 

 

そんなこんなで今日も楽しくエクセルが使えたら、幸せです。

 

自分に合ったお気に入りのスタイルでエクセルを使いこなしていきましょう。

 

ありがとうございました。