OfficeType

VBA~ユーザーフォームのタブストリップのラベルの表示をシートから参照しよう~Excel

ユーザーフォームのタブストリップのラベルの表示をシートから参照する

下の画像においてタブストリップをダブルクリックすると下のコードが表示されます。

Private Sub TabStrip1_Change()

End Sub

ここに処理内容を書き込めばタブを切り替えたときの処理を設定できます。今回は下のコードでシートを参照しTab1を選択した時にLabel1にシートのセルA1の月と表示し、Tab2を選択した時にLabel1にシートのセルB1の火と表示するように設定します。各タブにはインデックス番号が割り振られていて左から0,1,2・・・となります。インデックス番号は[オブジェクト名.Value = インデックス番号]で取得できるのでIf文で各インデックス番号の時の処理を分岐しています。シートのデータを参照したい時は[オブジェクト名.ControlSource = "シート名!セル番号"]で取得できます。

Private Sub TabStrip1_Change()

If TabStrip1.Value = 0 Then

Label1.ControlSource = "Sheet1!A1"

ElseIf TabStrip1.Value = 1 Then

Label1.ControlSource = "Sheet1!B1"

End If

End Sub

VBAで下のコードを実行すると作成したユーザーフォームが表示されTab1を選択した時にLabel1に月と表示し、Tab2を選択した時にLabel1に火と表示されます。

Sub test1()

Load UserForm1
UserForm1.Label1.ControlSource = "Sheet1!A1"
UserForm1.Show

End Sub

image-01

image-02

image-03