'---初心者がエクセルのVBAのユーザーフォームに挑戦している過程の覚書です。---
'---その過程で考えたことや必要なコードを書いていきます------------------
'---正しい用語を使ってるかどうかわかりません。
このフラッシュカードを作り終わったあと、リファレンスなどに何が書いてあるのか、ぼやぼやーとわかるようになりました。専門家じゃないので、用語より体得で行きます!
前回、ユーザーフォームを出しました。このフォームの初期値を設定します
《図004》
ユーザーフォームの大きさを決めるプロパティは height width です。widthはプロパティの下の方にあります。ここに直接数字を入力してもよいですが、フォーム図のほうで変えた方が楽でしょう。height width の数字が連動して変化しているのがわかると思います。好きな大きさに変えます。
Captionは、図の赤い〇のところです。プロパティウィンドウのところで UserForm1⇒「フラッシュカード」と書き換えてみると、図の方も変化します。またここのフォントを Font のところで変えることができるので、[...]をクリックして好きなフォントに変えます。
オブジェクト名、黄色で囲ったところです。自分で名づけ直します。 FlashcardForm という名前にしてみました。 プロジェクトウィンドウの UserForm1 がFlashcardForm に変化しています。
ほかのプロパティはデフォルトのままにしておきます。(デザインに関するプロパティを変更すると図が連動して変化します。設定できる範囲で好みに変更してみても。)
プロパティを全部覚える必要は全然なかったです。必要に応じて調べるようにすれば無問題でした。 ただ、よく使うものがあります。 .caption, .font, .text, .value, .visible, .Looked このらはよく使いました。よく使えば自然に覚えます。
このユーザーフォームを実際に表示させるには?
プログラム作成中であれば、このフォームを出させて(もしくはコードのなかで)実行ボタン[▶]を押せばOK。
エクセルのシートからなら、このフォームを表示させるためのマクロが必要になります。
プロジェクトウィンドウで標準モジュールを挿入し、そのモジュール内に、
'---コメント-----------
Sub FlashcardFormの表示()
FlashcardForm.show
End Sub
'--------------
上記のsubのコードを書きます。シートに戻り、[開発]⇒[マクロ](ショートカットキー:【Alt】⇒【L】⇒【P】⇒【M】)で実行できるマクロが羅列されますので FlashcardFormの表示 をさがして実行する。
また、ボタンを使って呼び出すようにすることもできる。ボタン配置のためのシートで、[開発]⇒[デザインモード]⇒[挿入]⇒[フォームコントロール]⇒[ボタン]⇒マクロの登録をしたのち、デザインモードを終了すれば、このボタンから呼び出せる。
コードの説明
□ ’
これ以降はコードとは関係ないただのコメントという意味、緑の色で表示されます。
□ sub 名前()~ end sub
実行させたいコード ~ に名前()をつけるための約束された書き方。青字表示。
□ .show
ユーザーフォームのオブジェト名の後につけることで、そのオブジェクト名をもつユーザーフォームを表示させるためのメソッド。
上記を翻訳:
Sub以下End Subまで を FlashcardFormの表示 という名前にして、 ()には何もないので、何も持たせず、End Sub が出てくるまで、 その中のコード /*ここでは、FlashcardForm.show ⇒FlashcardFormを表示しなさい*/ を実行しなさい。