FastFiber

tablestyle excel

Gestart door alex4444, di 15 10 2013, 11:16:18

Vorige topic - Volgende topic

alex4444

Ik laat acad een projectlijst aanmaken in excel. Nu wil ik een tablestyle toevoegen. Maar dit lijkt me niet te lukken. Ik kom met vl wel tot naam van de tablestyle maar ik kan hem niet zelf toevoegen.

Kan iemand mij helpen.

; OPEN EXCEL
(setq *excelapp% (vlax-get-or-create-object "Excel.Application"))
(vlax-put-property *excelapp% "Visible" :vlax-true)
(if (null (vlax-get-property *excelapp% "ActiveSheet"))
(vlax-invoke-method (vlax-get-property *excelapp% "WorkBooks") "Add")
)

; ALS IK HANDMATIG IN DE GEOPENDE EXCEL ONDER STYLES FORMAT AS TABLE AANKLIK AANZET OP DE CELL a1:j1 WERKT DIT
(vlax-dump-object (vlax-variant-value (vlax-get-property (vlax-get-property (vlax-get-property (vlax-get-property *ExcelApp% "activesheet") 'Range "A1:J1") 'listobject) 'tablestyle)))

; TableStyle: nil
; Property values:
; Application (RO) = #<VLA-OBJECT _Application 00000000295f8708>
; BuiltIn (RO) = -1
; Creator (RO) = 1480803660
; Name (RO) = "TableStyleMedium2"
; NameLocal (RO) = "Table Style Medium 2"
; Parent (RO) = #<VLA-OBJECT TableStyles 00000000296ef538>
; ShowAsAvailablePivotTableStyle = 0
; ShowAsAvailableTableStyle = -1
; TableStyleElements (RO) = #<VLA-OBJECT TableStyleElements 00000000296ef618>
; _Default (RO) = "TableStyleMedium2"
T

Nu wil ik geprogrammeerd de tablestyle als hierboven toevoegen aan een excel document.
Gr,
Alex

roy_043

Het ligt voor de hand dat je de parent van het object uit jouw post moet analyseren.

alex4444

(vlax-dump-object (vlax-get-property (vlax-variant-value (vlax-get-property (vlax-get-property (vlax-get-property (vlax-get-property *ExcelApp% "activesheet") 'Range "A1:J1") 'listobject) 'tablestyle)) "parent"))

; TableStyles: nil
; Property values:
;   Application (RO) = #<VLA-OBJECT _Application 0000000029463478>
;   Count (RO) = 144
;   Creator (RO) = 1480803660
;   Parent (RO) = #<VLA-OBJECT _Workbook 0000000029627aa8>
;   _Default (RO) = ...Indexed contents not shown...
;   _NewEnum (RO) = #<IUnknown 000000002d9442f0>
T

En dan? Hoe kan ik deze lijstjes zelf toevoegen aan excel?
Dit lukt allemaal ook alleen als ik het geopende excel handmatig een tablestyle toevoeg. Als ik het meteen doe krijg ik vla-object nil.

Het lijkt me dat ik het vla-object moet creeeren.

Alvast bedankt.

roy_043

Helaas ben ik geen gebruiker van Excel. Ik verwacht dat je meer voorbeelden zult vinden in de VB/VBA/VBS hoek dan in de Lisp hoek. Ik zou i.i.g. op zoek gaan naar het Excel object model.
Overigens: Je kunt beter dit gebruiken
(vlax-dump-object object T) ; Door het extra argument worden ook de 'methods' gedumpt.

alex4444

Citaat van: roy_043 op wo 16 10 2013, 09:49:02
Helaas ben ik geen gebruiker van Excel. Ik verwacht dat je meer voorbeelden zult vinden in de VB/VBA/VBS hoek dan in de Lisp hoek. Ik zou i.i.g. op zoek gaan naar het Excel object model.
Overigens: Je kunt beter dit gebruiken
(vlax-dump-object object T) ; Door het extra argument worden ook de 'methods' gedumpt.

Bedankt voor de tip

yoin