日本語 English
株式会社ヒューリンクス
TEL:03-5642-8384
営業時間:9:00-17:30

14.4 オブジェクトを返す

オブジェクトを取り扱うには、対象となるオブジェクトを返すことによって、それを定義できる必要があります。一般に、殆どのオブジェクトは、そのオブジェクトのツリー構造の親オブジェクトのプロパティを使って返します。

コレクションからオブジェクトを返す

それ以外のオブジェクトを返す場合は、コレクションの中からオブジェクトを1つ指定します。対象となるコレクションを定義したら、そのインデックス値を使って目的のオブジェクトを返すことができます (配列の取り扱いと同じ)。コレクションの全てで共有されるアイテムメソッドを使用するか、あるいは、直接インデックスを利用できます。インデックスには、アイテムの名称または番号を利用できます。例えば:

  • Set Worksheet = Notebooks("My Notebook").NotebookItems.Item(2)

    このコレクションのインデックス値は、Notebooks コレクションの中からノートブック “My Notebook” を返し、Item プロパティとインデックス番号で NotebookItems コレクションの中の3番目のアイテムを変数 Worksheet として返します。

    Notebooks コレクションには、SigmaPlot で開く全てのノートブックのリストが、NotebookItems コレクションには指定したノートブックの全てのアイテムが含まれています。

変数を定義する

オブジェクトを変数に定義することによっても、オブジェクトを返して利用することができます。通常は、Dim (dimension) 文を使います。

変数の宣言は、その変数を最初に利用することで暗黙的に宣言できますが、Option Explicit を使用することで、タイプミスによって生じるバグを回避することができます。以下にスクリプトの例を示します:

  • Option Explicit
    
    Sub Main
    Dim ItemCount
    Dim SPWorksheets$()
    ItemCount = ActiveDocument.NotebookItems.Count
    ReDim SPWorksheets$(ItemCount)
    Dim SPItems
    Set SPItems = ActiveDocument.NotebookItems
    Dim Index
    Index = 0
    Dim Item
    For Each Item In SPItems
    If SPItems(Index).ItemType = 1 Then
    SPWorksheets$(Index) = SPItems(Index).Name
    End If
    Index = Index + 1
    Next Item
    
    Begin Dialog UserDialog 320,119,"Worksheets in Active Notebook" '
    %GRID:10,7,1,1
    OKButton 210,14,90,21
    ListBox 20,14,170,91,SPWorksheets(),.ListBox1
    End Dialog
    Dim dlg As UserDialog
    Dialog dlg
    End Sub
    
    

    Dim (Dimension) 文を使用して変数を複数定義し、Set 命令を使って宣言される変数をオブジェクトとして定義しています。