These subroutines make it simple to dump whatever data you have out to excel. We use these for a
lot of reports. I've even built a dynamic report builder that allows users to select a form, select
the fields from the form then enter selection criteria and the results are exported directly to
Excel.
Sub NewExcelSheet(ssheet As Variant, wsheet As Variant)
'Creates an instance of MS Excel (msexcel) and a new spreadsheet (ssheet)
Set ssheet = CreateObject("Excel.Application")
Set wsheet = ssheet.Workbooks.Add
End Sub
Sub AddEntry(ssheet As Variant, row As Integer, col As Integer, value As Variant, bold As Integer,fnt$, fsz As Integer )
' fnt$ = "Times New Roman"
ssheet.Cells(row, col).Select
With ssheet.Selection.Font
.Name = fnt$
.Size = fsz
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = False
.ColorIndex = xlAutomatic
End With
ssheet.Selection.Font.Bold = bold
'ssheet.Selection.Font.Underline = True
ssheet.ActiveCell.FormulaR1C1 = value
End Sub
Sub SaveExcel(wsheet As Variant, filename$)
'Saves the Excel document as filename$
wsheet.SaveAs filename$
End Sub
Sub CloseExcel(wsheet As Variant)
'Closes the instance of Word
wsheet.Close
End Sub
Sub AttachExcel(wsheet As Variant, rtitem As NotesRichTextItem, filename$)
'Saves the Ms Excel document as filename$ then attaches it as an object to the rich text item.
Useful for attaching the Excel document to a Notes document
Dim object As NotesEmbeddedObject
Call SaveExcel(wsheet, filename$)
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", filename$, "thewordfile" )
Call rtitem.AddNewLine( 1 )
End Sub
Sub AutoFitExcelColumns(ssheet As Variant)
'Autofit the entire spreadsheet
ssheet.Cells.Select
ssheet.Selection.Columns.AutoFit
ssheet.Cells(1, 1).Select
End Sub
This was first published in November 2000