シート上のすべてのスパークラインを見つける

次のコード例では、ユーザー フォームのリスト ボックスを使用して、アクティブ シートにスパークライン グループをすべて表示します。 リスト ボックス内のスパークライン グループの 1 つをクリックすると、そのスパークライン グループがシート上で選択されます。

この例では、SparklineForm というユーザー フォームと、そのユーザー フォーム上に SparklineListBox というリスト ボックスおよび CloseBtn というボタンが必要です。

Visual Basic Editor で、モジュールを挿入し、次のコードをコピーして貼り付けます。 このコードによって、ユーザー フォームが表示されます。

Sub ShowUserForm()
    SparklineForm.Show
End Sub

Visual Basic Editor で、[SparklineForm] フォームを右クリックし、[コードの表示] を選択して、次のコードをコピーして貼り付けます。 UserForm_Activate プロシージャが、アクティブ シート上のすべてのスパークライン グループを処理し、Range オブジェクトの Address プロパティを使用してスパークライン グループのアドレスを取得します。 アドレスは、リスト ボックスに追加されます。 リスト ボックスのスパークライン グループのアドレスをクリックすると、SparklineListBox_Click プロシージャが呼び出されます。 このプロシージャは、Range オブジェクトの Activate メソッドを使用して、シートで選択されたスパークライン グループを有効にします。 ユーザー フォームのボタンをクリックすると、CloseBtn_Click プロシージャが呼び出され、ユーザー フォームが閉じられます。

Private Sub UserForm_Activate()
    'The sparkline group
    Dim oSparkGroup As SparklineGroup
    
    'Loop through all the sparkline groups on the sheet
    For Each oSparkGroup In ActiveSheet.Range("A:XFD").SparklineGroups
        'For each sparkline group found, add the address to the listbox
        SparklineListBox.AddItem oSparkGroup.Location.Address(, , , True)
    Next oSparkGroup
End Sub

Private Sub SparklineListBox_Click()
    'Activate the selected range that has the sparklines
    Range(SparklineListBox.Value).Activate
End Sub

Private Sub CloseBtn_Click()
    'Close the userform
    Unload Me
End Sub

関連項目

Excel でのSparklineGroup オブジェクト プログラミング

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。