>>>1. Einen Dateinamen kann man direkt nicht mitgeben. Das regelt man darüber, das man die Datei gleich zu beginn mit SaveAs speichert.
Soweit ich das gestern schon probiert hatte, braucht man das nicht am
Anfang machen, sondern zum Zeitpunkt des Speicherns mit SaveAS.
Da generell beim öffnen einer neuen Excel-Mappe z.B. Mappe1.xls
vorgebeben wird. Darum kann man die Funktion ... Open ... weglassen,
wenn man wie hier im Beispiel eine Neue ExcelMappe mit eigenen
Tabellennamen erstellen möchte, wo auch noch was eingetragen wird.
Geht prima

. Damit die Mappe ins aktuelle Verzeichnis
erstellt wird, sollte man diesen Source compilieren und dann im Verzeichnis die Exe ausführen.
Code: Alles auswählen
#xlUp=-4162
IncludePath #PB_Compiler_Home+"comate_pb4-3"
XIncludeFile "COMate.pbi"
Pfad.s=GetCurrentDirectory()+"Meine neue Excel-Mappe.xls"; Dateiname mit Path-Vorgabe
Debug Pfad
Define.COMateObject ExcelObject, WorkBook,WorkSheet,myRange,answer
Define myRange.ComateObject
ExcelObject = COMate_CreateObject("Excel.Application")
If ExcelObject
ExcelObject\SetProperty("Visible = #False"); Excel im Hintergrund. Kann man nur im Taskmanager sehen
WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add"); fügt eine Tabelle hinzu
ExcelObject\SetProperty("WorkSheets(1)\Name = 'ErsteTabelle'"); Tabelle1 mit Namen verzeichnen
ExcelObject\SetProperty("Cells(1,1) = 'Hello'"); schreibe Hello in Zelle A1
ExcelObject\SetProperty("Cells(1,2) = 'from'") ; schreibe from in Zelle B1
ExcelObject\SetProperty("Cells(1,3) = 'COMate!'");schreibe COMate in Zeile C1
ExcelObject\SetProperty("Cells(" + Str(intRow) + ",14) = "+ Cell6$ + "")
ExcelObject\SetProperty("Application\DisplayAlerts = #False") ; Excel-Alerts vor dem Speichern und Beenden ausschalten
ExcelObject\Invoke("ActiveWorkbook\SaveAs('"+Pfad+"')") ; hier wird der Dateiname nach füllen der Tabelle mitgegeben
ExcelObject\Invoke("ActiveWorkbook\Close"); Schließe aktive Tabelle
ExcelObject\Invoke("Workbooks\Close"); Schließe Excelmappe
ExcelObject\Invoke("Quit()")
ExcelObject\SetProperty("Application\DisplayAlerts = #True") ; Excel-Alerts wieder aktivieren
ExcelObject\Release(); Hiermit immer das Objekt zuletzt freigeben
Else
MessageRequester("COMate -Excel demo", "Couldn't create the application object!")
EndIf
[Edit] Zur Umrandung einer Zelle, würde ich empfehlen, folgende Procedure SetBorders() in comate anzupassen.
Komplette Beispiele zum Disphelper und Excel findet man hier:
http://www.purebasic.fr/german/viewtopi ... ight=excel
[/Edit]
Gruß Falko