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

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


前回に引き続き、ExcelエクセルにおけるUserFormユーザーフォームの解説です。

今回は、ScrollBarコントロールオブジェクトの解説です。

ScrollBarコントロール (スクロールバー)オブジェクト 
スクロールボックスの位置を移動させることで、他コントロールに値を設定します。値の取得も可能です。

既定のプロパティ:Valueプロパティ
既定のイベント:Changeイベント

■ ScrollBarコントロールオブジェクトのプロパティ

BackColor:コントロールの背景色を設定します。背景色はRGB関数、整数、定数で指定することが可能です。
ForeColor:コントロールの前景色を指定します。ScrollBarコントロールの場合、矢印の色に適用されます。

ControlSource:コントロールのValueプロパティにリンクさせるExcelワークシートのセル範囲を指定します。
(例)
  ScrollBar1.ControlSource = "a1"
この例では、ScrollBar1コントロールのValueプロパティがA1セルにリンクしています。ScrollBar1コントロールの初期値にA1セルの値が設定され、ScrollBar1コントロールの値を書き換えるとA1セルの値も変わります。

ControlTipText:マウスポインタをコントロール上に置いたとき、表示する文字列を設定します。

Delay:ScrollBarコントロールで、Changeイベントを発生させる際の遅延時間を設定します。
ScrollBarコントロールのボタンをクリックしたまま離さないでいると、Changeイベントが続けて発生しますが、Delayプロパティは、これらのイベントの発生間隔を設定します。クリックした直後は遅延なしにイベントが発生し、その後Delayプロパティの5倍の時間が経過してからイベントが発生します。この遅延時間については、イベントが連続発生することを防ぐため長めに設定されています。それ以降は設定値の間隔でイベントが発生します。
(例)
  Dim MyLng As Long

  Private Sub UserForm_Initialize()
    ScrollBar1.Delay = 50
  End Sub

  Private Sub ScrollBar1_Change()
    MyLng = MyLng + 1
    ListBox1.AddItem MyLng
  End Sub
この例では、ScrollBar1コントロールのボタンをクリックし続けたとき、ListBox1に「1」が表示されたあと、250ミリ秒後に「2」が表示され、以降50ミリ秒ごとに1づつ加算された数字が表示されます。

Enabled:ScrollBar1コントロールの場合、Trueで通常の表示と操作ができます、Falseで淡色表示となり、イベントに応答しなくなります。

HeightWidth:コントロールの高さ、幅をポイント単位で指定します。
LeftTop:コントロールの位置をフォーム左端、上端からの距離を基準に設定します。

MaxMin:ScrollBarコントロールのValueプロパティに設定できる最大値と最小値を設定します。
LargeChange:矢印ボタンとスクロールボックスの間をクリックしたときに移動するスクロール量を設定します。
SmallChange:スクロール矢印をクリックしたときのスクロール量を設定します。
Orientation:ScrollBarコントロールを垂直方向に配置するか、水平方向に配置するかを設定します。
  fmOrientationAuto:-1 は、コントロールの大きさによって向きを自動判定させます (既定値)。 
  fmOrientationVertical:0 は、垂直方向に配置します。 
  fmOrientationHorizontal:1 は、水平方向に配置します。 

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

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

Name:コントロールの名前を設定、取得します。

Parent:指定したコントロールを含む親オブジェクトを操作します。
(例)
  ScrollBar1.Parent.BackColor = vbRed
この例では、ScrollBar1コントロールが配置されている親オブジェクト(UserFormやFrameなど)の背景色を赤に変更します。

ProportionalThumb:スクロールボックスのサイズをスクロール領域に合わせて可変にするか、固定するかを設定します。Trueでスクロール領域のサイズに比例させます(既定値)。Falseで固定にします。
スクロールボックスのサイズを可変にした場合、ウィンドウ内に表示されているオブジェクト部分のパーセンテージに従って表示します。固定にするとスクロールバーの高さと幅に従って自動的にサイズを決定します。

Value:コントロールの状態を取得、設定します。ScrollBarコントロールでは、Maxプロパティの値とMinプロパティの値の間の整数値を表します。
Tag:コントロールに補足的な情報(文字列)を設定、取得できます。

TabIndex:タブオーダー内の順番を設定します。先頭のインデックスは0 です。
TabStop:FalseにするとTab キーによるフォーカス移動の際、このオブジェクトをスキップします。

Visible:オブジェクトの表示・非表示を設定します。Trueで表示、Falseで非表示です。

■ ScrollBarコントロールオブジェクトのメソッド

Move:コントロールを移動します。
(例)
  ScrollBar1.Move 100, 50, 200, 150
この例では、ScrollBar1コントロールをUserFormの左端から100、上端から50ポイントの位置に移動させ、幅200、高さ150ポイントで表示します。

SetFocus:コントロールにフォーカスを移します。
ZOrder:指定されたオブジェクトのZオーダーを変更します。fmTopでその他のコントロールの最前面に、fmBottomでその他のコントロールの最背面に表示します。



■ ScrollBarコントロールオブジェクトのイベント

Change:スクロールボタンをクリックまたはスクロールボックスを動かしたときに発生します。
Scroll:スクロールボックスを動かすと発生します。コードまたはスクロールボックス以外のクリックによって、コントロールの値が変更されたときにはScrollイベントは発生しません。
(例)
  Dim MyLng As Long

  Private Sub UserForm_Initialize()
    ScrollBar1.Min = 0
    ScrollBar1.Max = 100
  End Sub

  Private Sub ScrollBar1_Change()
    Label1 = "現在のScrollBarの値 " & ScrollBar1
    Label2 = "Changeイベントによって変化した値 " & (ScrollBar1 - MyLng)
    MyLng = ScrollBar1
  End Sub

  Private Sub ScrollBar1_Scroll()
    Label1 = "現在のScrollBarの値 " & ScrollBar1
    Label2 = "Scrollイベントによって変化した値 " & (ScrollBar1 - MyLng)
    MyLng = ScrollBar1
  End Sub
この例では、0〜100の範囲でScrollBar1コントロールの値が変化します。スクロールボタンをクリックしたり、スクロールボックスを移動させたりすると、Label1コントロールに現在の値が、Label2コントロールに変化した値がそれぞれ表示されます。スクロールボタンをクリックした場合はScrollイベントは発生しませんが、スクロールボックスを移動させた場合はScrollイベントが発生します。

AfterUpdateBeforeUpdate:コントロールの文字列を変更した後、他のコントロールにフォーカスを移したときに発生します。AfterUpdateは実際にデータが変更された後に発生します。BeforeUpdateは変更を実際にデータが変更される前に発生するため引数CancelにTrueを設定すると、フォーカスは元のコントロールに残り、AfterUpdateイベントもExitイベントも発生しません。
(例)
  Private Sub ScrollBar1_Change()
    Debug.Print "Change"
  End Sub

  Private Sub ScrollBar1_AfterUpdate()
    Debug.Print "AfterUpdate"
  End Sub

  Private Sub ScrollBar1_BeforeUpdate( _
                    ByVal Cancel As MSForms.ReturnBoolean _
                    )
    Debug.Print "BeforeUpdate"
    If ScrollBar1 < 100 Then
      Cancel = True
    End If
  End Sub
この例では、ScrollBar1コントロールの値が変更されるたびにChangeイベントが発生します。他のコントロールにフォーカスを移す際、BeforeUpdateイベントでコントロールの値が100未満かどうかをチェックし、100未満であれば変更をキャンセルします。100以上の場合は、他のコントロールにフォーカスが移り、AfterUpdateイベントが発生します。

EnterExit:Enterイベントは、同一フォーム上にある別のコントロールからフォーカスを受け取る前に発生します。Exit イベントは、同一フォーム上にある別のコントロールにフォーカスを移す前に発生します。

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

>> 次の話にすすむ


サイト内検索ができます

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,