GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ユーザーフォームを使いこなす
  UserFormsオブジェクトについて詳しく知ろう!
 
■ UserFormsオブジェクトについて詳しく知ろう


前回に引き続き、ExcelエクセルにおけるUserFormユーザーフォームの解説です。
今回は、UserFormsオブジェクトの解説です。

UserFormsオブジェクト
アプリケーションのユーザーインターフェイスとして使用するウィンドウまたはダイアログのことです。
各コントロールを配置する、基盤になるオブジェクトです。

UserFormsオブジェクトのプロパティ

ActiveControl:フォーカスを持っているコントロールを操作します。
(例)
  Debug.Print UserForm1.ActiveControl.Name
この例では、フォーカスを持っているコントロールの名前を取得します。

BackColor:オブジェクトの背景色を設定します。背景色はRGB関数、整数、定数で指定することが可能です。

BoderColor:オブジェクトの境界線色を設定します。オブジェクトの境界線スタイルがfmBorderStyleSingleになっている必要があります。
BoderStyle:オブジェクトの境界線スタイルを設定します。0 - fmBorderStyleNoneで境界線を表示しません。1 - fmBorderStyleSingleで境界線を表示します。既定値は0です。

Caption:オブジェクトに表示する文字列を設定します。

Cycle:フォーカスがFrameコントロールまたはMultiPageコントロール内を循環させるかどうかを設定します。fmCycleAllFormsでフォーカスは次のFrameコントロールまたはMultiPageコントロールに移ります。FmCycleCurrentFormでフォーカスはFrameコントロールまたはMultiPageコントロール内を循環します。

Enabled:Trueで通常の表示と操作ができます、Falseでイベントに応答しなくなります。

HeightWidth:オブジェクトの高さ、幅をポイント単位で指定します。
LeftTop:オブジェクトの位置を画面の左端、上端からの距離を基準に設定します。StartUpPositionプロパティが0-Manualでないと指定した位置に正しく表示されません。

StartUpPosition:UserFormを最初に表示するときの位置を設定、取得します。
  0-Manualで初期設定値を指定しません。
  1-CenterOwnerでUserFormが属する項目の中央に、
  2-CenterScreenで画面全体の中央に、
  3-Windows Defaultで画面左上にそれぞれ表示されます。

InsideHeightInsideWidth:フォーム中のクライアント領域の高さ、幅をポイント単位で返します。値の取得のみ可能です。

MousePointerMouseIcon:オブジェクトの上にカーソルを置いたときに表示する形状を設定します。MouseIconはMousePointerが99-fmMousePointerCustomのときに、表示する画像をLoadPicture関数で読み込みます。
(例)
  UserForm1.MousePointer = fmMousePointerHourGlass
この例では、オブジェクトにカーソルを合わせるとカーソル形状が砂時計に変更されます。

  UserForm1.MousePointer = fmMousePointerCustom
  UserForm1.MouseIcon = LoadPicture("C:\test.ico")
この例では、オブジェクトにカーソルを合わせるとC:\にあるtest.icoにカーソル形状が変更されます。

Name:オブジェクトの名前を設定、取得します。

Picture:オブジェクトの背景にに表示するビットマップ画像を設定します。画像の読み込みにはLoadPicture関数を使う必要があります。
PictureAlignment:背景に表示するピクチャの位置を設定します。
PictureSizeMode:オブジェクトの背景に表示するピクチャの表示方法を設定します。
  0-fmPictureSizeModeClipは、フォームに表示しきれない部分は切り捨てます (既定値)。
  1-FmPictureSizeModeStretchは、フォームのサイズに合わせて引き伸ばします。
  3-FmPictureSizeModeZoomは、必要に応じて引き伸ばしますが、水平または垂直方向にゆがまないように引き伸ばします。 
PictureTiling:フォーム全体にピクチャを並べて表示する設定をします。Trueで背景全体に並べて表示します。Falseで並べて表示しません (既定値)。
(例)
  UserForm1.Picture = LoadPicture("C:\001.bmp")
この例では、UserForm1オブジェクト上にC:\にある001.bmpが読み込まれます。

ScrollBars:オブジェクトに垂直、水平スクロールバーを表示するかどうかを設定します。
  0-fmScrollBarsNoneはスクロールバーを表示しません (既定値)。
  1-fmScrollBarsHorizontalは水平スクロールバーを表示します。
  2-fmScrollBarsVerticalは垂直スクロール バーを表示します。
  3-fmScrollBarsBothは両方のスクロールバーを表示します。 
KeepScrollBarsVisible:フォームの表示領域に全てのコントロールを表示できるときは、スクロールバーは必要ありませんが、KeepScrollBarsVisibleプロパティを使うと、このような場合でもスクロールバーを表示するかどうかを指定できます。引数は、ScrollBarsプロパティと同一です。
VerticalScrollbarSide:垂直スクロールバーを左右どちらに表示するか設定します。
  0-fmVerticalScrollbarSideRightは右端にスクロールバーを表示します (既定値)。
  1-fmVerticalScrollBarSideLeftは左端にスクロールバーを表示します。
ScrollHeightScrollWidth:オブジェクトのスクロールバーを動かすことによって表示できる領域の高さ、幅をポイント単位で設定します。
ScrollLeftScrollTop:論理的なオブジェクトの左端上端から、表示されているフォームの左端上端までの距離を、ポイント単位で指定します。
(例)
  UserForm1.Width = 300
  UserForm1.Height = 300
  UserForm1.ScrollBars = fmScrollBarsBoth
  UserForm1.ScrollWidth = 500
  UserForm1.ScrollHeight = 500
この例では、UserForm1オブジェクトを300*300ポイントで表示、水平垂直方向へのスクロールバーを表示し、500*500ポイントの領域までスクロールさせます。

Tag:オブジェクトに補足的な情報(文字列)を設定、取得できます。
Visible:オブジェクトの表示・非表示を設定します。Trueで表示、Falseで非表示です。
Zoom:オブジェクトの表示倍率を設定します。10〜400(%)の範囲で設定可能です。

UserFormsオブジェクトのメソッド

Hide:オブジェクトを非表示にしますが、アンロードしません。
Load:オブジェクトのインスタンスをメモリ上に読み込みますが、表示はしません。
Show:オブジェクトを表示します。ロードされてなくても自動的に読み込みます。1-vbModalは、モーダルでユーザーフォームを表示します。(既定値)0-vbModelessは、モードレスでユーザーフォームを読み込みます。
Unload:オブジェクトのインスタンスをメモリから削除します。
(例)
  Load UserForm1 'この時点で、UserForm1のインスタンスがメモリに読み込まれました。
  UserForm1.Show 'この時点で、UserForm1が表示されました。
  UserForm1.Hide 'この時点で、UserForm1が非表示になりました。
  Unload UserForm1 'この時点で、UserForm1のインスタンスがメモリから解放されました。
この例では、UserForm1をメモリに読み込み、表示したのち、非表示にし、メモリから削除しています。

Move:オブジェクトを移動します。
(例)
  UserForm1.Move 100, 50, 200, 150
この例では、UserForm1オブジェクトを画面の左端から100、上端から50ポイントの位置に移動させ、幅200、高さ150ポイントで表示します。

Repaint:オブジェクトを描画し直すことによって、その表示内容を更新します。
PrintForm:オブジェクトのイメージをプリンタに送ります。
(例)
  Private Sub UserForm_Click()
    UserForm1.PrintForm
  End Sub
この例では、UserForm1をClickすると、表示しているUserForm1のイメージをビット単位でプリンタより出力します。

Scroll:オブジェクトのスクロールバーを移動します。引数は、水平方向、垂直方向の順に設定します。引数に設定する定数は以下の通りです。
  0-fmScrollActionNoChange スクロールしません。 
  1-FmScrollActionLineUp 垂直方向の場合は上方向に、水平方向の場合は左方向に移動します。キーボードの↑、←キーに相当します
  2-FmScrollActionLineDown 垂直方向の場合は下方向に、水平方向の場合は右方向に移動します。キーボードの↓、→キーに相当します。 
  3-FmScrollActionPageUp 垂直方向の場合は上方向に、水平方向の場合は左方向に移動します。キーボードのPageUpキーに相当します。 
  4-fmScrollActionPageDown 垂直方向の場合は下方向に、水平方向の場合は右方向に移動します。キーボードのPageDownキーに相当します。 
  5-fmScrollActionBegin 垂直方向の場合は一番上まで、水平方向の場合は一番左まで移動します。 
  6-fmScrollActionEnd 垂直方向の場合は一番下まで、水平方向の場合は一番右まで移動します。 
(例)
  Private Sub UserForm_Click()
    UserForm1.Scroll fmScrollActionNoChange, fmScrollActionLineDown
  End Sub
この例では、UserForm1をClickするたびに、ユーザーフォームのスクロールバーが下方向に一行ずつ移動します。(横方向には移動しません)



UserFormsオブジェクトのイベント

ActivateDeactivate:Activate イベントはオブジェクトがアクティブになったとき、Deactivateイベントは、オブジェクトがアクティブでなくなったときに発生します。

Click:オブジェクトをマウスでクリックしたとき発生します。
DblClick:オブジェクトをダブルクリックしたとき発生します。
(例)
  UserForm1.BackColor = vbBlue
この例では、UserForm1オブジェクトをクリックしたとき、ユーザーフォームの背景色を青色に変更します。

MouseDownMouseUp:MouseDownはマウスボタンを押したとき、MouseUpはマウスボタンを離したときに発生します。
(例)
  Private Sub UserForm_MouseDown(ByVal Button As Integer, _
                              ByVal Shift As Integer, _
                              ByVal X As Single, _
                              ByVal Y As Single)
    UserForm1.Caption = "MouseDown"
  End Sub

  Private Sub UserForm_MouseUp(ByVal Button As Integer, _
                            ByVal Shift As Integer, _
                            ByVal X As Single, ByVal Y As Single)
    UserForm1.Caption = "MouseUp"
  End Sub
この例では、UserForm1コントロールをクリックしている間はタイトルバーに"MouseDown"の表示がされ、クリックを離すと"MouseUp"の表示に変わります。

MouseMove:オブジェクトの上にカーソルが移動したとき発生します。

Scroll:スクロールバーを動かすと発生します。
Zoom:Zoomプロパティの値を変更すると発生します。

Terminate:オブジェクトのインスタンスへのすべての参照がメモリから削除されたとき、または最後のオブジェクトへの参照が適用範囲外に出たときに発生します。Terminateイベントは、オブジェクトがアンロードされたあとに発生します。ユーザーフォームがメモリから削除されても、アプリケーションが異常終了したときは、Terminateイベントは起動しません。

以上で、UserFormsオブジェクトの解説を終わります。
次回は、Labelコントロールオブジェクトの解説を行います。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,