Thema Datum  Von Nutzer Rating
Antwort
Rot OfficeRibbon - mehrere Dokumente unabhängig?
24.09.2010 21:55:17 Manuel
NotSolved

Ansicht des Beitrags:
Von:
Manuel
Datum:
24.09.2010 21:55:17
Views:
1508
Rating: Antwort:
  Ja
Thema:
OfficeRibbon - mehrere Dokumente unabhängig?
Hallo zusammen,
ich habe folgendes Problem: ich habe mit VBA im Visual Studio 2010 eine Word 2010 Addin (OfficeRibbon) erstellt. Es funktioniert alles perfekt, solange ich nur ein Dokument geöffnet habe. Wenn nun aber mehrere Dokumente geöffnet sind, dann bezieht sich sich die Anzeige und die Aktion des Addins immer auf das aktuell angeklickte Dokument, und nicht das in den anderen Fenstern.
Konkret erstellt das Addin automatisch Backups vom Dokument und soll das auch tun, wenn gerade ein anderes Word-Dokument den Focus hat.
Zum speichern nutze ich die Funktion Globals.ThisAddIn.Application.ActiveDocument.SaveAs().

Wie könnte ich nun feststellen, dass mehere Instanzen von Word laufen (die ja dann auch alle eine eigene Kopie meiner Ribbon-Toolbar haben) und dann die Toolbars von einander "entknüpfen", sodass jede nur ihr eigenes Dokument bearbeitet?
Wär toll, wenn jemand nen Tipp hätte...
LG Manuel



für die Vollständigkeit hier noch mal der komplette Code:

Imports Microsoft.Office.Tools.Ribbon
Public Class Ribbon1
Dim doc
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
doc = Globals.ThisAddIn.Application.ActiveDocument
If Not doc.Path = "" Then
speichern()
Else
Dim box = MsgBox("Sie müssen die Datei vorher speichern. Jetzt speichern?", MsgBoxStyle.OkCancel, "AutoBackup")
If box = 2 Then
Exit Sub
End If
Try
doc.save()
Catch ex As Exception
MsgBox("AutoBackup konnte nicht speichern", MsgBoxStyle.Critical, "AutoBackup")
Exit Sub
End Try
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
speichern()
End Sub
Private Sub ToggleButton1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles ToggleButton1.Click
doc = Globals.ThisAddIn.Application.ActiveDocument
If ToggleButton1.Checked = True Then
If Not doc.Path = "" Then
speichern()
Timer1.Enabled = True
ToggleButton1.Label = "Automatik EIN"
Else
Dim box = MsgBox("Sie müssen die Datei vorher speichern. Jetzt speichern?", MsgBoxStyle.OkCancel, "AutoBackup")
If box = 2 Then
ToggleButton1.Checked = False
Exit Sub
End If
Try
doc.save()
Catch ex As Exception
MsgBox("AutoBackup konnte nicht gestartet werden", MsgBoxStyle.Critical, "AutoBackup")
ToggleButton1.Checked = False
Exit Sub
End Try
Timer1.Enabled = True
ToggleButton1.Label = "Automatik EIN"
End If
Else
Timer1.Enabled = False
ToggleButton1.Label = "Automatik AUS"
MsgBox("AutoBackup wurde beendet", MsgBoxStyle.OkOnly, "AutoBackup")
End If
End Sub
Private Sub speichern()
Dim pfad
Dim data1
Dim data2
doc = Globals.ThisAddIn.Application.ActiveDocument

If Not pfad Then
pfad = "c:\WORD-BACKUP\"
End If

If Not System.IO.Directory.Exists(pfad) Then
MkDir(pfad)
End If

data1 = pfad & Strings.Left(doc.Name, Strings.Len(doc.name) - Strings.InStrRev(doc.Name, ".")) & "-" & Format(Today, "yyyymmdd") & "-" & Format(Now, "hhmm") & ".docx"
data2 = doc.FullName
doc.SaveAs2(data1)
doc.SaveAs2(data2)
End Sub
End Class

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot OfficeRibbon - mehrere Dokumente unabhängig?
24.09.2010 21:55:17 Manuel
NotSolved