Über Ribbon auf Document zugreifen Word

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von okster.

    Über Ribbon auf Document zugreifen Word

    Jetzt habe ich es hinbekommen wie ich ein Word addin erstellen kann.

    Ich finde kein Tutorial dazu.

    Falls ihr eins habt ich währe dankbar.

    Aber als erstes würde mir langen wie ich von einem Ribbon aus Auf das Document zugreifen kann und Text an der Courserstelle einfügen kann, wenn ein Button auf dem Ribbon geklickt wurde.

    Danke schonmal
    hm. Das würde bestimmt gehen:)
    aber ich arbeite grade an einem projekt mit der testversion von visualstudio. Da kann man ja auch addins erstellen.
    Das ribbon habe ich jetzt schon erstellt. in der klasse thisAddin kann ich ja mit:

    VB.NET-Quellcode

    1. Application.Selection.Text += "Text"

    Text in das Document einfügen.

    jetzt will ich wenn ich einen button in dem ribbon anklicke das ich dann Text einfüge.

    meine versuche

    1. mit meiner eigenen new methode die variable application zu übergeben(Application wird nicht vollständig übergeben und ist in der klassse nachher zu "nothing")

    2. oder mit dem event empfangen(auf event wird nicht reagiert.)




    einmal mein code:

    VB.NET-Quellcode

    1. Public Class ThisAddIn
    2. Friend WithEvents ribb As Ribbon1
    3. Sub b(ByVal a As String) Handles ribb.einfügen
    4. Application.Selection.Text += a
    5. End Sub
    6. Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
    7. ribb = New Ribbon1(Application)
    8. addhandler ribb.empfangen, addressof b
    9. End Sub
    10. End Class

    in der klasse Ribbon1:


    Ribbon1_load:
    Hier lade ich werte aus einer Exceltabelle aus mit einer klasse von mir (clsExcel)
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim a As New clsExcel
    2. Dim names(-1) As String
    3. Private Sub Ribbon1_Load(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) Handles Me.Load
    4. a.ExcelDateiName = "C:\Users\Oke\Documents\Visual Studio 2008\Projects\WordAddIn2\WordAddIn2\bin\Debug\Tabelle.xls"
    5. a.Zellzugriff("A1")
    6. Dim i As Integer = 1
    7. Do
    8. Dim str As String
    9. str = a.Zellwert(0, i)
    10. If str = "" Then
    11. Exit Do
    12. End If
    13. str = str.Replace("|", "/")
    14. ReDim Preserve names(names.Length)
    15. names(names.GetUpperBound(0)) = str
    16. Dim but As New Microsoft.Office.Tools.Ribbon.RibbonDropDownItem()
    17. but.Label = str & "-Gebühr"
    18. DropDown1.Items.Add(but)
    19. i += 1
    20. Loop
    21. a.ExcelSchließen(False)
    22. End Sub

    Button1_click:
    wenn butten geklickt wird lese gebe ich text aus
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
    2. dim s as string = "hallo"
    3. MsgBox(s)
    4. RaiseEvent einfügen(s)
    5. End Sub

    InitializeComponent:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. <System.Diagnostics.DebuggerStepThrough()> _
    2. Private Sub InitializeComponent()
    3. Me.Tab1 = New Microsoft.Office.Tools.Ribbon.RibbonTab
    4. Me.Group1 = New Microsoft.Office.Tools.Ribbon.RibbonGroup
    5. Me.DropDown1 = New Microsoft.Office.Tools.Ribbon.RibbonDropDown
    6. Me.EditBox1 = New Microsoft.Office.Tools.Ribbon.RibbonEditBox
    7. Me.Button1 = New Microsoft.Office.Tools.Ribbon.RibbonButton
    8. Me.Group2 = New Microsoft.Office.Tools.Ribbon.RibbonGroup
    9. Me.Button3 = New Microsoft.Office.Tools.Ribbon.RibbonButton
    10. Me.ToggleButton1 = New Microsoft.Office.Tools.Ribbon.RibbonToggleButton
    11. Me.Button2 = New Microsoft.Office.Tools.Ribbon.RibbonButton
    12. Me.Button4 = New Microsoft.Office.Tools.Ribbon.RibbonButton
    13. Me.Tab1.SuspendLayout()
    14. Me.Group1.SuspendLayout()
    15. Me.Group2.SuspendLayout()
    16. Me.SuspendLayout()
    17. '
    18. 'Tab1
    19. '
    20. Me.Tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
    21. Me.Tab1.Groups.Add(Me.Group1)
    22. Me.Tab1.Groups.Add(Me.Group2)
    23. Me.Tab1.Label = "GVAN"
    24. Me.Tab1.Name = "Tab1"
    25. '
    26. 'Group1
    27. '
    28. Me.Group1.Items.Add(Me.DropDown1)
    29. Me.Group1.Items.Add(Me.EditBox1)
    30. Me.Group1.Items.Add(Me.Button1)
    31. Me.Group1.Label = "Einfügen"
    32. Me.Group1.Name = "Group1"
    33. '
    34. 'DropDown1
    35. '
    36. Me.DropDown1.Label = "Gebühr"
    37. Me.DropDown1.Name = "DropDown1"
    38. '
    39. 'EditBox1
    40. '
    41. Me.EditBox1.Label = "Geschäftswert"
    42. Me.EditBox1.Name = "EditBox1"
    43. Me.EditBox1.Text = Nothing
    44. '
    45. 'Button1
    46. '
    47. Me.Button1.Label = "Einfügen"
    48. Me.Button1.Name = "Button1"
    49. '
    50. 'Group2
    51. '
    52. Me.Group2.Items.Add(Me.Button4)
    53. Me.Group2.Items.Add(Me.Button3)
    54. Me.Group2.Items.Add(Me.ToggleButton1)
    55. Me.Group2.Label = "Optionen"
    56. Me.Group2.Name = "Group2"
    57. '
    58. 'Button3
    59. '
    60. Me.Button3.Label = "Tabelle ändern"
    61. Me.Button3.Name = "Button3"
    62. '
    63. 'ToggleButton1
    64. '
    65. Me.ToggleButton1.Label = "Nur Wert einfügen"
    66. Me.ToggleButton1.Name = "ToggleButton1"
    67. '
    68. 'Button2
    69. '
    70. Me.Button2.Label = ""
    71. Me.Button2.Name = "Button2"
    72. '
    73. 'Button4
    74. '
    75. Me.Button4.Label = "Text ändern"
    76. Me.Button4.Name = "Button4"
    77. '
    78. 'Ribbon1
    79. '
    80. Me.Name = "Ribbon1"
    81. Me.RibbonType = "Microsoft.Word.Document"
    82. Me.Tabs.Add(Me.Tab1)
    83. Me.Tab1.ResumeLayout(False)
    84. Me.Tab1.PerformLayout()
    85. Me.Group1.ResumeLayout(False)
    86. Me.Group1.PerformLayout()
    87. Me.Group2.ResumeLayout(False)
    88. Me.Group2.PerformLayout()
    89. Me.ResumeLayout(False)
    90. End Sub
    91. Friend WithEvents Tab1 As Microsoft.Office.Tools.Ribbon.RibbonTab
    92. Friend WithEvents Group1 As Microsoft.Office.Tools.Ribbon.RibbonGroup
    93. Friend WithEvents Button1 As Microsoft.Office.Tools.Ribbon.RibbonButton
    94. Friend WithEvents DropDown1 As Microsoft.Office.Tools.Ribbon.RibbonDropDown
    95. Friend WithEvents Button2 As Microsoft.Office.Tools.Ribbon.RibbonButton
    96. Friend WithEvents EditBox1 As Microsoft.Office.Tools.Ribbon.RibbonEditBox
    97. Friend WithEvents Group2 As Microsoft.Office.Tools.Ribbon.RibbonGroup
    98. Friend WithEvents ToggleButton1 As Microsoft.Office.Tools.Ribbon.RibbonToggleButton
    99. Friend WithEvents Button3 As Microsoft.Office.Tools.Ribbon.RibbonButton
    100. Friend WithEvents Button4 As Microsoft.Office.Tools.Ribbon.RibbonButton


    new und dispose subs (auch eine eigene von mir mit der ich versuche die variable application von der Klasse ThisAddin zu übergeben)
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private applica As Word.Application
    2. <System.Diagnostics.DebuggerNonUserCode()> _
    3. Public Sub New()
    4. MyBase.New()
    5. 'Dieser Aufruf ist für den Komponenten-Designer erforderlich.
    6. InitializeComponent()
    7. End Sub
    8. Public Sub New(ByVal ab As Word.Application)
    9. applica = ab
    10. 'Dieser Aufruf ist für den Komponenten-Designer erforderlich.
    11. InitializeComponent()
    12. End Sub
    13. 'Die Komponente überschreibt den Löschvorgang zum Bereinigen der Komponentenliste.
    14. <System.Diagnostics.DebuggerNonUserCode()> _
    15. Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    16. Try
    17. If disposing AndAlso components IsNot Nothing Then
    18. components.Dispose()
    19. End If
    20. Finally
    21. MyBase.Dispose(disposing)
    22. End Try
    23. End Sub


    Ich hoffe man das man ein bisschen den überblickbehalten kann:P