ユーザーフォームの使い方 [ExcelのVBA]
ユーザーフォーム
「ユーザーフォーム」はフォームウインドウとなります。
正式名称 | UserForm |
---|
コード例 - 基本操作
[事前準備]
設計時に「UserForm1」と「UserForm2」の2つのフォームを作成します。UserForm1には「CommandButton」を1つ、UserForm2には「TextBox」を1つ配置します。
[内容]
次のコードは「UserForm1」に記述します。内容は「UserForm2の表示、UserForm2のコントロールの操作」と「ユーザーフォームの基本的なイベントの流れを出力」します。
Private Sub CommandButton1_Click() ' ユーザーフォーム2のテキストボックスを操作する UserForm2.TextBox1.Text = "プチモンテ" ' ユーザーフォーム2を表示する UserForm2.Show End Sub Private Sub UserForm_Activate() Debug.Print "フォーム1がアクティブになりました。" End Sub Private Sub UserForm_Deactivate() Debug.Print "フォーム1が非アクティブになりました。" End Sub ' 主に初期設定などを記述します。 Private Sub UserForm_Initialize() Debug.Print "フォーム1がロードされました。" End Sub ' 主にメモリ解放などを記述します。 Private Sub UserForm_Terminate() Debug.Print "フォーム1がアンロードされました。" End Sub
[結果]
コード例 - 終了を検知する
次はユーザーフォームが「x」ボタンで閉じられようとした時にその操作をキャンセルします。
Private Sub CommandButton1_Click() ' VBAを終了する End End Sub ' フォームが閉じられる時 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Debug.Print "フォーム1が閉じられようとしています。" ' フォームウインドウ右上にある「x」ボタンでは ' 終了できないようにする If (CloseMode = vbFormControlMenu) Then Cancel = CInt(True) End If End Sub
※QueryCloseイベントはイベントが発生した時点でフォームなどの情報をレジストリやINIファイルへ保存したりする事にも使用されます。
[結果]
次はCloseModeの定数です。
定数 | 意味 |
---|---|
vbFormControlMenu | 「x」ボタンが押された。 |
vbFormCode | Unloadイベントが呼び出された。 |
vbAppWindows | Windowsが終了した。 |
vbAppTaskManager | タスクマネージャーで閉じられた。 |
プロパティの一覧
プロパティ | 内容 |
---|---|
BackColor | コントロールの背景色 |
BorderColor | コントロールの枠線色 |
BorderStyle | コントロールの枠スタイル |
Caption | コントロールの表示名 |
Cycle | フォーカスのサイクルの設定 ※主にマルチページで使用する。マルチページのページでfmCycleCurrentFormを設定するとのマルチページ内のみフォーカスが循環する。 |
DrawBuffer | 画面描画する為の最大画素数 |
Enabled | コントロールの使用設定(True/False) |
Font | 文字列のフォントの設定 |
ForeColor | 文字列の表示色の設定 |
Height | コントロールの縦幅 |
HelpContextID | ヘルプのコンテキストIDの設定 |
KeepScrollBarVisible | スクロールバーが必要が無い時も表示するかどうか |
Left | コントロールの表示位置(画面の左幅) |
MouseIcon | マウスアイコンの設定 |
MousePointer | マウスポインターの設定 |
Picture | コントロールの画像設定 |
PictureAlignment | 画像の表示位置 |
PictureSizeMode | 画像の拡大縮小 |
PictureTiling | 画像をタイル形式にする |
RightToLeft | 文字列の表示方向(日本語版ではTrueにはできません)。日本語版は左から右に設定されています。 |
ScrollBars | スクロールバーの表示設定 |
ScrollHeight | スクロールバーの縦幅 |
ScrollLeft | スクロールバーの位置(左) |
ScrollTop | スクロールバーの位置(上) |
ScrollWidth | スクロールバーの横幅 |
ShowModal | フォームをモーダルの設定(オン/オフ)。モーダルで表示するとそのウインドウ以外は操作不能になる。 |
SpecialEffect | コントロールの表示スタイルの設定 |
StartUpPosition | フォームの初期表示位置の設定 |
Tag | 任意の文字列を設定(String型) |
Top | コントロールの表示位置(画面の上幅) |
WhatsThisButton | タイトルバーにヘルプボタンを追加する。WhatsThisHelpと連動しています。 |
WhatsThisHelp | タイトルバーにヘルプボタンを追加する |
Width | コントロールの横幅 |
Zoom | ズーム設定(デフォルトは100%) |
※プロパティの基本的な使い方は「プロパティの使い方」をご覧ください。
イベントの一覧
イベント | 内容 |
---|---|
Activate | コントロールがアクティブになった。 |
AddControl | コントロールが追加された。 |
BeforeDragOver | コントロールへファイルをドラッグ中。 |
BeforeDropOrPaste | コントロールへファイルをドロップした。 |
Click | コントロールをクリックした。 |
DblClick | コントロールをダブルクリックした。 |
Deactivate | コントロールが非アクティブになった。 |
Error | コントロールでエラーが発生した。 |
Initialize | コントロールのロード時。 |
KeyPress | コントロール上で英数字記号キーを押した。 |
KeyUp | コントロール上でなんらかのキーを離した。 |
Layout | レイアウトが変更された。 |
MouseDown | コントロール上でマウスのボタンを押した。 |
MouseMove | コントロール上でマウスが移動した。 |
MouseUp | コントロール上でマウスのボタンを離した。 |
QueryClose | フォームが閉じる時。 |
RemoveControl | コントロールが削除された。 |
Resize | コントロールのサイズが変更した。 |
Scroll | スクロールバーの値が変動した。 |
Terminate | コントロールのアンロード時。 |
Zoom | ズームが変更された。 |
※イベントの基本的な使い方は「イベントの使い方」をご覧ください。
Visual Basicのコントロール
共通操作 プロパティの使い方 イベントの使い方 |
ラベル | |
テキストボックス | |
コンボボックス | |
リストボックス | |
チェックボックス | |
オプションボタン | |
トグルボタン | |
フレーム | |
コマンドボタン | |
タブストリップ | |
マルチページ | |
スクロールバー | |
スピンボタン | |
イメージ | |
ユーザーフォーム |
エクセル講座のクイックリンク
スポンサーリンク
関連記事
公開日:2015年07月01日 最終更新日:2015年07月06日
記事NO:01097