表示データにシートのセルを指定する

広告

タブを切り替えた時にコントロールに表示される値にExcelのシートに入力された値を表示する方法を確認します。

タブに配置されているコントロールの値をシートのセルで指定するには「ControlSource」プロパティを使います。

Value プロパティにリンクさせる Excel ワークシートのセル範囲を指定します。

引数:
  object  設定するオブジェクトを指定します。
  String  コントロールの Value プロパティにリンクさせるワークシートの
    セルを指定します。

このプロパティはタブストリップ上に配置されているコントロールに対して設定します。例としてテキストボックスが配置されている時は次のように記述します。

Private Sub monthTab_Change()
    Dim index As Integer
    
    index = monthTab.Value
    If index = 0 Then
        salesText.ControlSource = "ListSheet!C2"
    ElseIf index = 1 Then
        salesText.ControlSource = "ListSheet!C3"
    ElseIf index = 2 Then
        salesText.ControlSource = "ListSheet!C4"
    End If
End Sub

サンプルプログラム

では簡単なサンプルで試してみましょう。タブストリップのChangeイベントに次のように記述します。

Private Sub monthTab_Change()
    Dim index As Integer
    
    index = monthTab.Value + 2
    salesText.ControlSource = "ListSheet!C" & index
End Sub

また呼びだすマクロは次の通りです。

testTab3.bas

Sub テスト()
    Load sampleForm
    sampleForm.monthTab.Tabs(0).Caption = "1月"
    sampleForm.monthTab.Tabs(1).Caption = "2月"
    sampleForm.monthTab.Tabs(2).Caption = "3月"
    sampleForm.Show
End Sub

Excelシートを次のように用意しておきます。

コントロールにシートのセルの値を設定

上記マクロを実行すると次のように表示されます。

コントロールにシートのセルの値を設定

タブを切り替えるとその時表示されたタブに対応するシートのセルの値がコントロールに表示されます。

コントロールにシートのセルの値を設定

コントロールにシートのセルの値を設定

またコントロールの値を書き換えると元になっているExcelシートのセルの値も書き換えられます。

コントロールにシートのセルの値を設定

コントロールにシートのセルの値を設定

( Written by Tatsuo Ikura )