I found this VBA code for microsoft excel to transfer charts into word. How can I modify this code in order to work in libre calc?
Public Sub Copy_Charts_From_2_Workbooks_To_Word()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim WordRange As Word.Range
Dim WordDocumentFullName As String
Dim wb1 As Workbook, wb2 As Workbook
Dim chObject As ChartObject
Dim i As Long, c1 As Long, c2 As Long
WordDocumentFullName = "C:\folder\path\Word document.docx" 'CHANGE THIS
Set wb1 = Workbooks.Open("C:\folder\path\Workbook1.xlsx", ReadOnly:=True) 'CHANGE THIS
Set wb2 = Workbooks.Open("C:\folder\path\Workbook2.xlsx", ReadOnly:=True) 'CHANGE THIS
'Get existing instance of Word or create a new one
On Error Resume Next
Set WordApp = GetObject(Class:="Word.Application")
Err.Clear
If WordApp Is Nothing Then Set WordApp = CreateObject(Class:="Word.Application")
If Err.Number = 429 Then
MsgBox "Microsoft Word is not installed.", vbCritical
Exit Sub
End If
On Error GoTo 0
WordApp.Visible = True
'Open Word document
Set WordDoc = WordApp.Documents.Open(FileName:=WordDocumentFullName, ReadOnly:=False)
Set WordRange = WordDoc.Range
c1 = 0
c2 = 0
For i = 1 To wb1.Worksheets("Sheet1").ChartObjects.Count + wb2.Worksheets("Sheet1").ChartObjects.Count
c1 = c1 + 1
If c1 <= wb1.Worksheets("Sheet1").ChartObjects.Count Then
Set chObject = wb1.Worksheets("Sheet1").ChartObjects(c1)
chObject.CopyPicture xlScreen, xlPicture
'Paste clipboard to Word document.
'Trap occasional Run-time error 4198: Method 'PasteSpecial' of object 'Range' failed
On Error Resume Next
Do
Err.Clear
WordRange.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine, DisplayAsIcon:=False
DoEvents
If Err.Number <> 0 Then Application.Wait DateAdd("s", 1, Now)
Loop While Err.Number <> 0
On Error GoTo 0
WordRange.SetRange WordRange.End, WordRange.End
WordRange.InsertParagraphAfter
WordRange.Collapse wdCollapseEnd
End If
c2 = c2 + 1
If c2 <= wb2.Worksheets("Sheet1").ChartObjects.Count Then
Set chObject = wb2.Worksheets("Sheet1").ChartObjects(c1)
chObject.CopyPicture xlScreen, xlPicture
'Paste clipboard to Word document.
'Trap occasional Run-time error 4198: Method 'PasteSpecial' of object 'Range' failed
On Error Resume Next
Do
Err.Clear
WordRange.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine, DisplayAsIcon:=False
DoEvents
If Err.Number <> 0 Then Application.Wait DateAdd("s", 1, Now)
Loop While Err.Number <> 0
On Error GoTo 0
WordRange.SetRange WordRange.End, WordRange.End
WordRange.InsertParagraphAfter
WordRange.Collapse wdCollapseEnd
End If
Next
MsgBox "Done"