次の方法で共有


ListObject.OriginalDataRestored イベント

ユーザーが許可されていない操作を実行した後、ListObject コントロールが元の状態に戻される場合に発生します。

名前空間:  Microsoft.Office.Tools.Excel
アセンブリ:  Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll 内)

構文

'宣言
Event OriginalDataRestored As OriginalDataRestoredEventHandler
event OriginalDataRestoredEventHandler OriginalDataRestored

解説

このイベントが発生するような操作の例として、ユーザーが読み取り専用のデータに対して変更を行った場合があります。ListObject コントロールでは、その変更は取り消され、元の値に置き換えられます。

このイベントは、何がどのような理由で元に戻されたかを示す情報を列挙値で提供します。

次のコード例は、DataTableListObject を作成し、ListObjectDataTable にバインドします。次に、OriginalDataRestored イベント ハンドラーを作成します。イベントをテストするには、Sheet 1 のListObject の上にある列の文字を右クリックし、ショートカット メニューの [削除] をクリックします。イベント ハンドラーによって、列と列ヘッダーのデータが置き換えられ、各操作についてメッセージが表示されます。

このバージョンは、ドキュメント レベルのカスタマイズに使用されます。

    WithEvents OriginalDataRestoredList As _
        Microsoft.Office.Tools.Excel.ListObject
    Private Sub ListObject_OriginalDataRestored()
        ' Create a new DataSet and DataTable.
        Dim ds As New DataSet()
        Dim dt As DataTable = ds.Tables.Add("Customers")
        Dim lastName As New DataColumn("LastName")
        dt.Columns.Add(lastName)
        dt.Columns.Add(New DataColumn("FirstName"))

        ' Add two new rows to the DataTable.
        Dim dr1 As DataRow = dt.NewRow()
        dr1("LastName") = "Chan"
        dr1("FirstName") = "Gareth"
        dt.Rows.Add(dr1)
        Dim dr2 As DataRow = dt.NewRow()
        dr2("LastName") = "Nitsche"
        dr2("FirstName") = "Sonja"
        dt.Rows.Add(dr2)

        ' Create a list object.
        OriginalDataRestoredList = Me.Controls.AddListObject( _
            Me.Range("A1"), "OriginalDataRestoredList")

        ' Bind the list object to the DataTable.
        OriginalDataRestoredList.AutoSetDataBoundColumnHeaders = True
        OriginalDataRestoredList.SetDataBinding(ds, "Customers", _
            "LastName", "FirstName")
    End Sub

    Private Sub List1_OriginalDataRestored(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs) _
        Handles OriginalDataRestoredList.OriginalDataRestored
        MessageBox.Show("This data is bound to a data source and " & _
        "will be restored. This change is: " & e.ChangeType.ToString() & _
        ". The reason is: " & e.ChangeReason.ToString() + ".")
    End Sub

private void ListObject_OriginalDataRestored()
{
    // Create a new DataSet and DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    DataColumn lastName = new DataColumn("LastName");
    dt.Columns.Add(lastName);
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add two new rows to the DataTable.
    DataRow dr1 = dt.NewRow();
    dr1["LastName"] = "Chan";
    dr1["FirstName"] = "Gareth";
    dt.Rows.Add(dr1);
    DataRow dr2 = dt.NewRow();
    dr2["LastName"] = "Nitsche";
    dr2["FirstName"] = "Sonja";
    dt.Rows.Add(dr2);

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1"], "list1");

    // Bind the list object to the DataTable.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.SetDataBinding(ds, "Customers", "LastName",
        "FirstName");

    // Create the event handler.
    list1.OriginalDataRestored += new 
        Microsoft.Office.Tools.Excel.
        OriginalDataRestoredEventHandler(list1_OriginalDataRestored);
}

void list1_OriginalDataRestored(object sender, 
    Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs e)
{
    MessageBox.Show("This data is bound to a data source and " +
    "will be restored. This change is: " + e.ChangeType.ToString() +
    ". The reason is: " + e.ChangeReason.ToString() + ".");
}

このバージョンは、アプリケーション レベルのアドインに使用されます。このコード例を使用するには、using System.Data; ディレクティブを追加するか (C# を使用している場合)、または Imports System.Data ステートメントを追加します (Visual Basic を使用している場合)。

WithEvents OriginalDataRestoredList As ListObject
Private Sub ListObject_OriginalDataRestored()
    ' Create a new DataSet and DataTable.
    Dim ds As New DataSet()
    Dim dt As DataTable = ds.Tables.Add("Customers")
    Dim lastName As New DataColumn("LastName")
    dt.Columns.Add(lastName)
    dt.Columns.Add(New DataColumn("FirstName"))

    ' Add two new rows to the DataTable.
    Dim dr1 As DataRow = dt.NewRow()
    dr1("LastName") = "Chan"
    dr1("FirstName") = "Gareth"
    dt.Rows.Add(dr1)
    Dim dr2 As DataRow = dt.NewRow()
    dr2("LastName") = "Nitsche"
    dr2("FirstName") = "Sonja"
    dt.Rows.Add(dr2)

    ' Create a list object.
    Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet =
        Me.Application.Worksheets(1)
    Dim vstoWorksheet As Microsoft.Office.Tools.Excel.Worksheet =
            Globals.Factory.GetVstoObject(NativeWorksheet)
    OriginalDataRestoredList = vstoWorksheet.Controls.AddListObject( _
        vstoWorksheet.Range("A1"), "OriginalDataRestoredList")

    ' Bind the list object to the DataTable.
    OriginalDataRestoredList.AutoSetDataBoundColumnHeaders = True
    OriginalDataRestoredList.SetDataBinding(ds, "Customers", _
        "LastName", "FirstName")
End Sub

Private Sub List1_OriginalDataRestored(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs) _
    Handles OriginalDataRestoredList.OriginalDataRestored
    System.Windows.Forms.MessageBox.Show( _
        "This data is bound to a data source and " & _
        "will be restored. This change is: " & e.ChangeType.ToString() & _
        ". The reason is: " & e.ChangeReason.ToString() + ".")
End Sub
private void ListObject_OriginalDataRestored()
{
    // Create a new DataSet and DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    DataColumn lastName = new DataColumn("LastName");
    dt.Columns.Add(lastName);
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add two new rows to the DataTable.
    DataRow dr1 = dt.NewRow();
    dr1["LastName"] = "Chan";
    dr1["FirstName"] = "Gareth";
    dt.Rows.Add(dr1);
    DataRow dr2 = dt.NewRow();
    dr2["LastName"] = "Nitsche";
    dr2["FirstName"] = "Sonja";
    dt.Rows.Add(dr2);

    // Create a list object.
    Worksheet vstoWorksheet =
        Globals.Factory.GetVstoObject(this.Application.ActiveWorkbook.Worksheets[1]);
    ListObject list1 =
        vstoWorksheet.Controls.AddListObject(
        vstoWorksheet.Range["A1"], "list1");

    // Bind the list object to the DataTable.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.SetDataBinding(ds, "Customers", "LastName",
        "FirstName");

    // Create the event handler.
    list1.OriginalDataRestored += new
        OriginalDataRestoredEventHandler(list1_OriginalDataRestored);
}

void list1_OriginalDataRestored(object sender,
    Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs e)
{
    System.Windows.Forms.MessageBox.Show("This data is bound to a data source and " +
    "will be restored. This change is: " + e.ChangeType.ToString() +
    ". The reason is: " + e.ChangeReason.ToString() + ".");
}

.NET Framework セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

ListObject インターフェイス

Microsoft.Office.Tools.Excel 名前空間