Office: COM Add-in kann Zellen nicht auslesen bzw. editieren

Helfe beim Thema COM Add-in kann Zellen nicht auslesen bzw. editieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Ich Benutze folgende Office Version: Microsoft Office Professional Edition 2003 Microsoft Office Excel 2003 (11.8012.6568) SP 2 Programmiersprache... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von haiko, 7. August 2006.

  1. haiko Neuer User

    COM Add-in kann Zellen nicht auslesen bzw. editieren


    Ich Benutze folgende Office Version:
    Microsoft Office Professional Edition 2003
    Microsoft Office Excel 2003 (11.8012.6568) SP 2
    Programmiersprache : VB .Net

    Ich möchte ein COM Add-in durch folgendes Interface Implementieren: Extensibility.IDTExtensibility2

    Ich gehe nach folgender Webside vor:
    http://msdn.microsoft.com/library/d...officeadd-inswithvisualcnetvisualbasicnet.asp
    Ich habe die "Microsoft Excel 11.0 Object Library" als Projektreferenz hinzugefügt und die "Office" Referenz entfernt

    Das Problem, welches ich habe, besteht in Auslesen bzw. Ändern von Zellen, sowie dem Hinzufügen eines neuen Workbooks. Im nachfolgenden Code sind das die folgenden CodeZeilen:
    -
    Code:
    Dim wb As Excel.Workbook = excelApp.Workbooks.Add()
    -
    Code:
    excelApp.ActiveCell.Value = "asdf"
    -
    Code:
    excelApp.ActiveCell.Value
    -
    Code:
    rng2.Value() = "asdf"
    Sie werden nicht ausgeführt und übersprungen, wobei ich hier weder einen Syntaxfehler noch sonstige Probleme erkennen kann. Was ist Falsch bzw. wie kann ich sonst auf Zellen zugreifen?
    Alle anderen CodeZeilen funktionieren (
    Code:
    ws.Name = "neuername"
    ). Alle Buttons etc. werden korrekt angelegt und auch die Methode myExcelFunction_Click wird beim betätigen des Buttons aufgerufen.

    Hier mein Code der Klasse Connect.vb

    Code:
    Imports Microsoft.Office.Core
    imports Extensibility
    imports System.Runtime.InteropServices
    
    <GuidAttribute("8BF2E7D7-89DD-4ACD-AB46-9F6671F182DC"), ProgIdAttribute("MyAddin1.Connect")> _
    Public Class Connect
    	
        Implements Extensibility.IDTExtensibility2
    	
        Dim excelApp As Excel.Application
        Dim myExcelFunction As Microsoft.Office.Core.CommandBarButton
    
    	Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown
    	End Sub
    	
    	Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnAddInsUpdate
    	End Sub
    	
    	Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete
    	End Sub
    	
    	Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection
    	End Sub
    	
    	Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
            ' Setup code for the add-in.
            SetApplicationFields(application)
            ' More setup code for the add-in.
    
            Dim toolbar As Microsoft.Office.Core.CommandBar = Nothing
    
            If Not excelApp Is Nothing Then
                toolbar = AddExcelToolbar(excelApp, "some text:haiko")
                myExcelFunction = MakeANewButton(toolbar, "edit Value", 1082, AddressOf myExcelFunction_Click) 'die zahl 1082 steht für ein bestimmtest Image
            End If
        End Sub
    
        Private Function MakeANewButton(ByVal commandBar As _
        Microsoft.Office.Core.CommandBar, ByVal caption As String, _
        ByVal faceID As Integer, ByVal clickHandler As _
        Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler) _
        As Microsoft.Office.Core.CommandBarButton
            Try
                Dim newButton As Microsoft.Office.Core.CommandBarButton
                newButton = CType(commandBar.Controls.Add( _
                    Microsoft.Office.Core.MsoControlType.msoControlButton), _
                    Microsoft.Office.Core.CommandBarButton)
                newButton.Caption = caption
                newButton.FaceId = faceID
                AddHandler newButton.Click, clickHandler
                Return newButton
            Catch ex As System.Exception
                ' Add code here to handle the exception.
                Return Nothing
            End Try
        End Function
    
        Private Function AddExcelToolbar(ByVal excel As Excel.Application, _
                ByVal toolbarName As String) As Microsoft.Office.Core.CommandBar
    
            Dim toolBar As Microsoft.Office.Core.CommandBar = Nothing
            Try
                ' Create a command bar for the add-in
                toolBar = CType(excel.CommandBars.Add(toolbarName, _
                    Microsoft.Office.Core.MsoBarPosition.msoBarTop, , True), _
                    Microsoft.Office.Core.CommandBar)
                toolBar.Visible = True
                Return toolBar
            Catch
                ' Add exception handling here.
                Return Nothing
            End Try
        End Function
    
        Private Sub SetApplicationFields(ByVal application As Object)
            If TypeOf (application) Is Word.Application Then
                wordApp = CType(application, Word.Application)
                excelApp = Nothing
            ElseIf TypeOf (application) Is Excel.Application Then
                excelApp = CType(application, Excel.Application)
                wordApp = Nothing
            End If
        End Sub
    
        Public Sub myExcelFunction_Click(ByVal barButton As _
            Microsoft.Office.Core.CommandBarButton, ByRef someBool As Boolean)
            On Error Resume Next
            If Not excelApp Is Nothing Then
                Dim wb As Excel.Workbook = excelApp.Workbooks.Add()
                Dim ws As Excel.Worksheet = CType(excelApp.ActiveSheet, Excel.Worksheet)
                ws.Name = "neuername"
                Dim rng2 As Excel.Range = excelApp.ActiveCell
                rng2.AddComment("dies ist ein kommentar")
                rng2.Value() = "asdf"
                Dim str As String = excelApp.ActiveCell.Value
                MsgBox("Wert der zelle:" + str)
                excelApp.ActiveCell.Value = "asdf"
            End If
        End Sub
    End Class
     
  2. haiko Neuer User
    Debug Fehlermeldung

    Als Anmerkung: ich habe sowohl .net 1.1 als auch 2.0 installiert

    Der Debuger wirft folgende Fehlermeldung beim ausführen von
    Code:
    rng2.Value() = "asdf"
    A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll

    Additional information: Exception from HRESULT: 0x800A03EC.

    Vielleicht kann jemand damit was anfangen?
     
  3. freaky
    freaky Erfahrener User
    Hi,

    ...also ich denke, hier wirst Du keine Antwort darauf bekommen. Es sei denn, es kennt sich jemand mit VB.net aus - denn dort ist ja wohl das Problem.

    So wie ich es verstehe, wird der Fehler in Deinem Com-Addin ausgelöst - und das ist kein Problem von Excel.

    Leider sind meine Kenntnisse in VB.net nicht so gut...arbeite noch mit VB 6. :-(
     
    freaky, 7. August 2006
    #3
  4. haiko Neuer User

    COM Add-in kann Zellen nicht auslesen bzw. editieren

    ok, ich habe den Fehler selbst gefunden:

    Folgenden Code in die Klassenvariablendeklaration:

    Code:
    Dim thisThread As System.Threading.Thread = System.Threading.Thread.CurrentThread
    Dim originalCulture As System.Globalization.CultureInfo = thisThread.CurrentCulture
    folgenden Code in die Methode OnConnection
    Code:
    thisThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
    folgenden Code in die Methode OnDisconnection
    Code:
    thisThread.CurrentCulture = originalCulture
    nun kann man auf alles wie gewohnt zugreifen.

    Ich hoffe es erspart einigen viel Zeit zum suchen. Einen besonderen Dank an dieser Stelle an MicroSoft für die besonders gute Dokumentation
     
Thema:

COM Add-in kann Zellen nicht auslesen bzw. editieren

Die Seite wird geladen...
  1. COM Add-in kann Zellen nicht auslesen bzw. editieren - Similar Threads - COM Add Zellen

  2. Office-Add-in Calendar

    in Microsoft Excel Hilfe
    Office-Add-in Calendar: Hallo, ich habe eine grosse Tabelle. In Zeile 1 Habe ich die Spaltennamen eingetragen. Nun muss ich sehr große Datenmengen mit Datum nachtragen. Ich habe unter Office-Add-in das Add in "Mini...
  3. Add in Legacy outlook

    in Microsoft Outlook Hilfe
    Add in Legacy outlook: Moin zusammen, kurze Frage. Ich nutze Outlook für mac. Dabei habe ich noch den Legacy Modus. Kann man irgendwo in dem Legacy Modus Add ins einstellen? Dazu finde ich nichts… Ich danke schon mal...
  4. COM-Add-Ins automatisch starten

    in Microsoft Excel Hilfe
    COM-Add-Ins automatisch starten: Hallo, gibt es eine Möglichkeit, dass man bestimmte COM-Add-Ins beim Starten von Excel automatisch starten kann. Zur zeit muss ich immer Excel öffnen und dann in die COM-Add-Ins Verwaltung gehen...
  5. Regfree COM / Side-by-Side

    in Microsoft Access Hilfe
    Regfree COM / Side-by-Side: Hallo! Ich versuche eine .net-COM-dll über Regfree COM zu verwenden. Das klappt ohne Probleme in einem VB6-exe-Projekt, wenn ich eine Manifest-Datei erstelle. Ich kann die .net-COM-dll auch...
  6. Teams - Outlook Add-In lädt nicht mit

    in Microsoft Teams Hilfe
    Teams - Outlook Add-In lädt nicht mit: Sehr geehrtes Support Team, ich habe bereits 2 User im Unternehmen, bei denen Teams einwandfrei funktioniert, aber das Teams Add-In im Outlook (Outlook Professional Plus 2016 - on premise) nicht...
  7. Teams Add In in Outlook 365

    in Microsoft Teams Hilfe
    Teams Add In in Outlook 365: Guten Tag, ich habe Office 365, nutze meist die Desktopversion. Bis vor kurzem hatte ich Teams als Add-In installiert und konnte aus Outlook heraus Besprechungen für Teams erstellen. In Outlook...
  8. Eigenschaft .Version von Access als COM-Applikation

    in Microsoft Access Hilfe
    Eigenschaft .Version von Access als COM-Applikation: Moinsens! Ich checke gerade für eine Code-Weiche die Versionsnummern der einzelnen Office-Anwendungen. Schon blöd, daß einige ihre Version mit , und andere mit . getrennt darstellen. Wenn die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden