VBAでのタブストリップ(TabStrip)の使い方とプロパティおよびイベント

Excel VBA からタブストリップ(TabStrip)コントロールを利用する方法です。タブストリップは同じコントロールに対してタブを切り替えると異なる値を表示する場合に使用されるコントロールです。ここでは Excel のユーザーフォームで設置できるタブストリップを VBA から使用する方法と、タブストリップで設定可能なプロパティおよびイベントの一覧について解説します。

(Last modified: )

タブストリップのプロパティ一覧

ユーザーフォームに設置するタブストリップで利用可能なプロパティ一覧は次の通りです。

BackColor
ControlTipText
Enabled
Font
ForeColor
Height
HelpContextID
Left
MouseIcon
MousePointer
MultiRow
Style
TabFixedHeight
TabFixedWidth
TabIndex
TabOrientation
TabStop
Tag
Top
Value
Visible
Width

タブストリップの既定のプロパティは SelectedItem プロパティです。

いくつかのプロパティについてはこのあと簡単に解説します。

タブストリップの基本的な使い方

タブストリップには他のコントロールを設置することができます(ただし実際にはコントロールはタブストリップに追加されるのではなくユーザーフォームに追加されています)。

タブストリップの基本的な使い方(1)

タブストリップには複数のタブが表示されていますが、タブを切り替えてもタブストリップに設置したコントロールには変化がありません。同じコントロールが表示されます。

タブストリップの基本的な使い方(2)

タブストリップでは、タブを切り替えるとコントロールそのものを変えるのではなくコントロールに表示される値が変化させます。タブストリップのタブを切り替えた時にタブストリップ内のコントロールの状態を変化させるコードの記述方法については「タブストリップでタブを切り替えたときの処理を記述する」を参照されてください。

なおタブストリップと似ているマルチページでは、ページ毎に表示するコントロールを設置するのでページを切り替えると表示されるコントロールそのものが変わります。

タブストリップにタブを追加する

タブストリップにタブを追加する方法です。まず Visual Basic Editor の画面で行う方法を確認します。ユーザーフォームにタブストリップを追加してください。

タブストリップにタブを追加する(1)

タブストリップにはデフォルトでタブは 2 つ追加されています。タブを追加するには、タブストリップの上で一度クリックしてください。タブストリップが薄い枠線で囲まれます。

タブストリップにタブを追加する(2)

もう一度タブストリップの上で一度クリックしてください。タブストリップが今度は濃い枠線で囲まれます。

タブストリップにタブを追加する(3)

この状態でタブストリップの上で右クリックし、表示されたメニューの中から「新しいページ」をクリックしてください。

タブストリップにタブを追加する(4)

タブストリップにタブが追加されました。

タブストリップにタブを追加する(5)

VBAを使ってタブストリップにタブを追加する

VBA を使ってプログラムの中からタブストリップにタブを追加する方法です。タブを追加するには TabStrip オブジェクトの Tabs コレクションに対して Add メソッドを使います。

Set myTab = オブジェクト.Add([ Name [, Caption [, index ]]])

省略可能な 1 番目の引数に追加するタブのオブジェクト名を指定します。同じく省略可能な 2 番目の引数にタブに表示される文字列を指定します。同じく省略可能な 3 番目の引数に追加するタブの位置を表すインデックスを指定します。省略した場合は最後に追加されます。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップにタブを追加しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.Tabs.Add
End Sub

タブストリップにタブを追加する(6)

タブストリップにタブを追加する(7)

ユーザーフォームを表示すると、表示されたタブストリップにタブが追加されているのが確認できます。

タブストリップにタブを追加する(8)

タブストリップのタブに表示する文字列を設定する(Caption)

タブストリップのタブに表示する文字列を設定する方法ですです。まず Visual Basic Editor の画面で行う方法を確認します。タブを追加したときと同じ手順でタブストリップを 2 回クリックしてください。タブストリップが濃い枠線で囲まれます。

タブストリップのタブに表示する文字列を設定する(Caption)(1)

文字列を変更したいタブの上で右クリックし、表示されたメニューの中から「名前の変更」をクリックしてください。

タブストリップのタブに表示する文字列を設定する(Caption)(2)

次のようなウィンドウが表示されるので「キャプション」の右にあるテキストボックスでタブに表示される文字列を編集してください。編集が終わったら「OK」をクリックしてください。

タブストリップのタブに表示する文字列を設定する(Caption)(3)

タブに表示される文字列が変更されました。

タブストリップのタブに表示する文字列を設定する(Caption)(4)

VBAを使ってタブに表示する文字列を設定する

VBA を使ってプログラムの中からタブに表示される文字列を変更する方法です。タブストリップに追加されているタブのオブジェクトは、タブストリップのオブジェクト名が TabStrip1 だった場合、それぞれ次のようにインデックスを指定して参照することができます。

TabStrip1.Tabs(0)
TabStrip1.Tabs(1)
TabStrip1.Tabs(2)

最初のタブのインデックスが 0 で、そのあとは順番に 1, 2, ... と続いていきます。

それぞれのタブに表示される文字列を変更するには、参照したタブの Caption プロパティに値を設定します。

オブジェクト.Caption [= String ]

タブに表示する文字列を代入してください。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップのタブに表示する文字列を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.Tabs(0).Caption = "本社"
    TabStrip1.Tabs(1).Caption = "関西支社"
End Sub

タブストリップのタブに表示する文字列を設定する(Caption)(5)

タブストリップのタブに表示する文字列を設定する(Caption)(6)

ユーザーフォームを表示すると、表示されたタブストリップのタブに設定した文字列が表示されているのが確認できます。

タブストリップのタブに表示する文字列を設定する(Caption)(7)

タブストリップの表示位置を設定する(Top,Left)

タブストリップが表示される位置を設定するには Top プロパティと Left プロパティに値を設定します。

オブジェクト.Top [= Single ]
オブジェクト.Left [= Single ]

Top プロパティにはユーザーフォームの上端からタブストリップの上端までの距離、 Left プロパティにはユーザーフォームの左端からタブストリップの左端までの距離をそれぞれ単精度浮動小数点型の数値で代入します。単位はポイントです。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップの位置を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.Top = 50
    TabStrip1.Left = 60
End Sub

タブストリップの表示位置を設定する(Top,Left)(1)

タブストリップの表示位置を設定する(Top,Left)(2)

ユーザーフォームを表示すると、表示されたタブストリップが指定した位置で表示されているのが確認できます。

タブストリップの表示位置を設定する(Top,Left)(3)

タブストリップの幅と高さを設定する(Width,Height)

タブストリップの幅と高さを設定するには幅については Width プロパティ、高さについては Height プロパティに値を設定します。

オブジェクト.Width [= Single ]
オブジェクト.Height [= Single ]

幅および高さをあらわす単精度浮動小数点型の数値を代入してください。単位はポイントです。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップの幅と高さを設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.Width = 160
    TabStrip1.Height = 70
End Sub

タブストリップの幅と高さを設定する(Width,Height)(1)

タブストリップの幅と高さを設定する(Width,Height)(2)

ユーザーフォームを表示すると、表示されたタブストリップの幅および高さが指定した値に設定されているのが確認できます。

タブストリップの幅と高さを設定する(Width,Height)(3)

タブストリップのタブで使用するフォントを設定する(Font)

タブストリップのタブに表示される文字列のフォントを設定するには Font プロパティに値を設定します。 Font プロパティは Font オブジェクトを返します。 Font オブジェクトのプロパティに対して値を設定していくことでフォントに関する設定を行うことができます。

Font オブジェクトには多くのプロパティが用意されていますが、よく使用されるものは次のプロパティです。

Name           フォント名
Size           フォントサイズ
Bold           太字
Italic         斜体
Underline      下線
Strikethrough  取り消し線

例えばフォント名を設定する場合は次のように記述します。例えば "MS UI Gothic" や "MS 明朝" などを代入します。

オブジェクト.Font.Name = フォント名を表す文字列

フォントサイズを設定する場合は次のように記述します。

オブジェクト.Font.Size = フォントサイズを表す数値

太字、斜体、取り消し線を設定する場合は、対応するプロパティに「True」を設定してください。

オブジェクト.Font.Bold = True
オブジェクト.Font.Italic = True
オブジェクト.Font.Strikethrough = True

下線を設定する場合は、次のいずれかの値を設定してください。

定数説明
xlUnderlineStyleDouble-4119二重下線
xlUnderlineStyleDoubleAccounting5二重下線(会計)
xlUnderlineStyleNone-4142下線なし
xlUnderlineStyleSingle2一重下線
xlUnderlineStyleSingleAccounting4一重下線(会計)
オブジェクト.Font.Underline = xlUnderlineStyleSingle

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップのタブに表示される文字列のフォントサイズや書式を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.Font.Size = 14
    TabStrip1.Font.Bold = True
    TabStrip1.Font.Underline = xlUnderlineStyleSingle
End Sub

タブストリップのタブで使用するフォントを設定する(Font)(1)

タブストリップのタブで使用するフォントを設定する(Font)(2)

ユーザーフォームを表示すると、表示されたタブストリップのタブに指定したフォントの設定が行われているのが確認できます。

タブストリップのタブで使用するフォントを設定する(Font)(3)

タブストリップのタブを表示する位置を設定する(TabOrientation)

タブストリップでタブをどの位置に表示するのかを設定するには TabOrientation プロパティに値を設定します。

オブジェクト.TabOrientation [= fmTabOrientation ]

設定可能な値は次の通りです。

定数説明
fmTabOrientationTop0タブはコントロールの上に表示されます
fmTabOrientationBottom1タブはコントロールの下に表示されます
fmTabOrientationLeft2タブはコントロールの左側に表示されます
fmTabOrientationRight3タブはコントロールの右端に表示されます

デフォルトの値は fmTabOrientationTop となっておりタブはコントロールの上に表示されます。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、タブストリップのタブを表示する位置として右側を指定しています。

Option Explicit

Private Sub UserForm_Initialize()
    TabStrip1.TabOrientation = fmTabOrientationRight
End Sub

タブストリップのタブを表示する位置を設定する(TabOrientation)(1)

タブストリップのタブを表示する位置を設定する(TabOrientation)(2)

ユーザーフォームを表示すると、タブストリップの右側にタブが表示されているのが確認できます。

タブストリップのタブを表示する位置を設定する(TabOrientation)(3)

なおタブストリップの下側および左側にタブが表示するように設定した場合は、それぞれ次のように表示されます。

タブストリップのタブを表示する位置を設定する(TabOrientation)(4)

タブストリップのタブを表示する位置を設定する(TabOrientation)(5)

タブストリップのイベント一覧

タブストリップで発生するイベント一覧は次の通りです。

BeforeDragOver
BeforeDropOrPaste
Change
Click
DblClick
Enter
Error
Exit
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp

タブストリップの既定のイベントは Change イベントです。

-- --

Excel のユーザーフォームで設置できるタブストリップを VBA から使用する方法と、タブストリップで設定可能なプロパティおよびイベントの一覧について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。