Mario  Meir-HuberExcel und C#: Das Range Objekt


Wenn man Application Level Plugins für Excel mit C# schreibt, so wird man gleich feststellen, das das "Range" Objekt auf einem Worksheet nicht vorhanden ist bzw. nicht zugreifbar ist - zumindest mit Intellisense. Wenn man jedoch "xxx.Range" eingibt, so wird keine Meldung angezeigt, das es nicht vorhanden ist. Statt dessen kommt eine Meldung das man "get_Range" verwenden soll.

image

Mit get_Range funktioniert es schlussendlich auch in C#. Wichtig ist hierbei, dass als 2. Parameter "System.Type.Missing" übergeben wird, wenn dieser nicht benötigt wird.

Würde man nun vom Ribbon (Annahme: Klick auf einem Button) auf den ActiveSheet zugreifen, so würde das folgendermaßen aussehen:

void button_Click(object sender, RibbonControlEventArgs e)
{
    Microsoft.Office.Interop.Excel.Worksheet _sheet = Globals.ThisAddIn.Application.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
    Microsoft.Office.Interop.Excel.Range _range;

    if (null != _sheet)
    {
        _range = _sheet.get_Range("A1", System.Type.Missing);
        _range.Value2 = ((RibbonButton)sender).Label;
        _range.AddComment("Dies wurde automatisiert eingefügt");
    }
}


Kategorien: .Net;C#;Office;VSTO; 21.06.2008 18:40:55


 


Neuen Kommentar einfügen:

  Titel:   
  Name:
  E-Mail:
  Kommentar:

 
 


Kommentare




© Copyright 2008 ppedv AG