ExcelAutomation2007plus/de: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 2 | 1 | Zurück zur [[Office Automation/de|Office Automation]].\ | |
| 3 | - | ||
| 4 | - | ||
| 2 | + | ||
| 5 | 3 | =Excel 2007= | |
| 6 | 4 | ||
| 7 | 5 | ## Speicherplatz reservieren | |
| 8 | 6 | ||
| 9 | 7 | ``` pascal | |
| 10 | 8 | var | |
| 11 | 9 | varXLApp: oleVariant; // wird für die Adressierung des Programms Excel verwedet | |
| 12 | 10 | varXLWb: oleVariant; // wird für die Adressierung des Exceldatei verwendet | |
| 13 | 11 | wstrUebergabe: WideString; // Hilfsvariable (wird z. B. für Umlaute usw. benötigt) | |
| 14 | 12 | ``` | |
| 15 | 13 | ||
| 16 | - | ||
| 17 | 14 | ==Excel OleObjekt erstellen== | |
| 18 | 15 | ||
| 19 | 16 | ``` pascal | |
| 20 | 17 | begin | |
| 21 | 18 | ... | |
| 22 | 19 | try | |
| 23 | 20 | varXLApp := CreateOleObject('Excel.Application'); // erstellt das Excelobjekt | |
| 24 | 21 | except | |
| 25 | 22 | WriteLn('MS Excel kann nicht gestartet werden.'); // Fehlerbehandlung | |
| 26 | 23 | end; | |
| 27 | 24 | ... | |
| 28 | 25 | end; | |
| 29 | 26 | ``` | |
| 30 | 27 | ||
| 31 | - | ||
| 32 | 28 | ==Excel beenden und den Speicher freigeben== | |
| 33 | 29 | ||
| 34 | 30 | ``` pascal | |
| 35 | 31 | begin | |
| 36 | 32 | ... | |
| 37 | 33 | varXLApp.Quit; | |
| 38 | 34 | varXLApp := UnAssigned; //Der Speicher muss am Ende wieder freigegeben werden, sonst entstehen Speicherlecks | |
| 39 | 35 | ... | |
| 40 | 36 | end; | |
| 41 | 37 | ``` | |
| 42 | 38 | ||
| 43 | - | ||
| 44 | 39 | ==Excel Version ermitteln== | |
| 45 | 40 | ||
| 46 | 41 | ``` pascal | |
| 47 | 42 | begin | |
| 48 | 43 | ... | |
| 49 | 44 | ShowMessage(varXLApp.Version); | |
| 50 | 45 | ... | |
| 51 | 46 | end; | |
| 52 | 47 | ``` | |
| 53 | 48 | ||
| 54 | - | ||
| 55 | 49 | ==Fehlermeldungen und Warnungen deaktivieren== Das Dekativieren von bestimmten Fehlermeldungen und Warnungen kann die Softwaresteuerung vereinfachen. | |
| 56 | 50 | ||
| 57 | 51 | ``` pascal | |
| 58 | 52 | begin | |
| 59 | 53 | ... | |
| 60 | 54 | varXLApp.DisplayAlerts := False; // schaltet diverse Fehlermeldungen von Excel aus | |
| 61 | 55 | ... | |
| 62 | 56 | end; | |
| 63 | 57 | ``` | |
| 64 | 58 | ||
| 65 | - | ||
| 66 | 59 | ==Sichtbarkeit von Excel steuern== Wenn das Screenupdating während der Automation auf False gesetzt wird, dann wird dadurch das Flackern des Bildschirms während der Automation verhindert. | |
| 67 | 60 | ||
| 68 | 61 | ``` pascal | |
| 69 | 62 | begin | |
| 70 | 63 | ... | |
| 71 | 64 | varXLApp.Visible := False; // macht Excel unsichtbar | |
| 72 | 65 | varXLApp.ScreenUpdating := False; // schaltet das ScreenUpdating von Excel aus | |
| 73 | 66 | ||
| 74 | 67 | varXLApp.ScreenUpdating := True; // schaltet das ScreenUpdating von Excel ein | |
| 75 | 68 | varXLApp.Visible := True; // macht Excel sichtbar | |
| 76 | 69 | ... | |
| 77 | 70 | end; | |
| 78 | 71 | ``` | |
| 79 | 72 | ||
| 80 | - | ||
| 81 | 73 | =Workbooks=\ | |
| 82 | 74 | ==Workbook (Datei) einfügen== Erstellt eine neue Datei. | |
| 83 | 75 | ||
| 84 | 76 | ``` pascal | |
| 85 | 77 | begin | |
| 86 | 78 | ... | |
| 87 | 79 | varXLApp.Workbooks.Add; // fügt ein neues Workbook ein | |
| 88 | 80 | ... | |
| 89 | 81 | end; | |
| 90 | 82 | ``` | |
| 91 | 83 | ||
| 92 | - | ||
| 93 | 84 | ==Workbook speichern== | |
| 94 | 85 | ||
| 95 | 86 | ``` pascal | |
| 96 | 87 | begin | |
| 97 | 88 | ... | |
| 98 | 89 | varXLApp.Workbooks[1].Save; // speichert ein Worksheet über seinen Index | |
| 99 | 90 | varXLApp.Workbooks['Test.xls'].Save; // speicher ein Worksheet über seinen Namen | |
| 100 | 91 | ... | |
| 101 | 92 | end; | |
| 102 | 93 | ``` | |
| 103 | 94 | ||
| 104 | - | ||
| 105 | 95 | ==Workbook unter neuem Namen speichern== | |
| 106 | 96 | ||
| 107 | 97 | ``` pascal | |
| 108 | 98 | begin | |
| 109 | 99 | ... | |
| 110 | 100 | varXLApp.Workbooks[1].SaveAs('D:\Test.xls', varXLApp.Workbooks[1].fileformat); | |
| 111 | 101 | ... | |
| 112 | 102 | end; | |
| 113 | 103 | ``` | |
| 114 | 104 | ||
| 115 | - | ||
| 116 | 105 | ==Workbook schliessen== | |
| 117 | 106 | ||
| 118 | 107 | ``` pascal | |
| 119 | 108 | begin | |
| 120 | 109 | ... | |
| 121 | 110 | varXLApp.Workbooks[1].Close; | |
| 122 | 111 | ... | |
| 123 | 112 | end; | |
| 124 | 113 | ``` | |
| 125 | 114 | ||
| 126 | - | ||
| 127 | 115 | ==Workbook einen Bereich benennen== | |
| 128 | 116 | ||
| 129 | 117 | ``` pascal | |
| 130 | 118 | begin | |
| 131 | 119 | ... | |
| 132 | 120 | varXLApp.Workbooks[1].Names.Add('kmh', '=Tabelle1!$E$14'); | |
| 133 | 121 | ... | |
| 134 | 122 | end; | |
| 135 | 123 | ``` | |
| 136 | 124 | ||
| 137 | - | ||
| 138 | 125 | =Worksheet=\ | |
| 139 | 126 | ==Worksheet einfügen== | |
| 140 | 127 | ||
| 141 | 128 | ``` pascal | |
| 142 | 129 | begin | |
| 143 | 130 | ... | |
| 144 | 131 | varXLApp.WorkBooks[1].WorkSheets.Add; //fügt ein neues WorkSheet hinzu | |
| 145 | 132 | ... | |
| 146 | 133 | end; | |
| 147 | 134 | ``` | |
| 148 | 135 | ||
| 149 | - | ||
| 150 | 136 | ==Worksheet einen Bereich benennen== | |
| 151 | 137 | ||
| 152 | 138 | ``` pascal | |
| 153 | 139 | begin | |
| 154 | 140 | ... | |
| 155 | 141 | varXLApp.Workbooks[1].WorkSheets[1].Names.Add('kmh', '=Tabelle1!$E$14'); | |
| 156 | 142 | ... | |
| 157 | 143 | end; | |
| 158 | 144 | ``` | |
| 159 | 145 | ||
| 160 | - | ||
| 161 | 146 | ==Zellen und Ranges==\ | |
| 162 | 147 | ===Wert einfügen=== | |
| 163 | 148 | ||
| 164 | 149 | ``` pascal | |
| 165 | 150 | begin | |
| 166 | 151 | ... | |
| 167 | 152 | varXLApp.Workbooks[1].WorkSheets[1].Range['E14'].Value := 4; | |
| 168 | 153 | ... | |
| 169 | 154 | end; | |
| 170 | 155 | ``` | |
| 171 | 156 | ||
| 172 | - | ||
| 173 | 157 | =Charts erstellen= | |
| 174 | 158 | ||
| 175 | 159 | ## Chart Speicher reservieren | |
| 176 | 160 | ||
| 177 | 161 | ``` pascal | |
| 178 | 162 | var | |
| 179 | 163 | varDiagramm: OleVariant; | |
| 180 | 164 | ``` | |
| 181 | 165 | ||
| 182 | - | ||
| 183 | 166 | ==Chart Speicher freigeben== | |
| 184 | 167 | ||
| 185 | 168 | ``` pascal | |
| 186 | 169 | begin | |
| 187 | 170 | ... | |
| 188 | 171 | varDiagramm := UnAssigned; | |
| 189 | 172 | ... | |
| 190 | 173 | end; | |
| 191 | 174 | ``` | |
| 192 | 175 | ||
| 193 | - | ||
| 194 | 176 | ==Chart aktivieren== | |
| 195 | 177 | ||
| 196 | 178 | ``` pascal | |
| 197 | 179 | begin | |
| 198 | 180 | ... | |
| 199 | 181 | varDiagramm.Activate; // Aktiviert das Chart | |
| 200 | 182 | ... | |
| 201 | 183 | end; | |
| 202 | 184 | ``` | |
| 203 | 185 | ||
| 204 | - | ||
| 205 | 186 | ==Chart Diagramtyp festlegen== | |
| 206 | 187 | ||
| 207 | 188 | ``` pascal | |
| 208 | 189 | begin | |
| 209 | 190 | ... | |
| 210 | 191 | varDiagramm.ChartType := xlColumnClustered; // Legt den Diagramtyp fest | |
| 211 | 192 | ... | |
| 212 | 193 | end; | |
| 213 | 194 | ``` | |
| 214 | 195 | ||
| 215 | - | ||
| 216 | 196 | ==Chart Datenherkunft (Datenquelle) festlegen== | |
| 217 | 197 | ||
| 218 | 198 | ``` pascal | |
| 219 | 199 | begin | |
| 220 | 200 | ... | |
| 221 | 201 | // Legt die Datenherkunft (das Excelsheet und den Bereich im Excelsheet) fest | |
| 222 | 202 | varDiagramm.SetSourceData (Source := varXLApp.WorkSheets['Tabelle1'].Range['A1:E13'], | |
| 223 | 203 | PlotBy := xlColumns); | |
| 224 | 204 | ... | |
| 225 | 205 | end; | |
| 226 | 206 | ``` | |
| 227 | 207 | ||
| 228 | - | ||
| 229 | 208 | ==Chart Titel== | |
| 230 | 209 | ||
| 231 | 210 | ``` pascal | |
| 232 | 211 | begin | |
| 233 | 212 | ... | |
| 234 | 213 | // Legt fest, dass das Chart einen Titel haben darf | |
| 235 | 214 | varXLApp.Workbooks[1].ActiveChart.HasTitle := True; | |
| 236 | 215 | ||
| 237 | 216 | // Legt den Namen des Chart Titels fest | |
| 238 | 217 | varXLApp.Workbooks[1].ActiveChart.ChartTitle.Text := 'Diagnose'; | |
| 239 | 218 | ||
| 240 | 219 | // Legt die Hintergrundschriftfarbe des Chart Titels fest | |
| 241 | 220 | varXLApp.Workbooks[1].ActiveChart.ChartTitle.Interior.Color := vbGreen; | |
| 242 | 221 | ... | |
| 243 | 222 | end; | |
| 244 | 223 | ``` | |
| 245 | 224 | ||
| 246 | - | ||
| 247 | 225 | ==Chart Legende== | |
| 248 | 226 | ||
| 249 | 227 | ``` pascal | |
| 250 | 228 | begin | |
| 251 | 229 | ... | |
| 252 | 230 | //Legt die Beschriftung des ersten Elements der Chartlegende fest | |
| 253 | 231 | varXLApp.Workbooks[1].ActiveChart.SeriesCollection(1).Name := '="Eins"'; | |
| 254 | 232 | ... | |
| 255 | 233 | end; | |
| 256 | 234 | ``` | |
| 257 | 235 | ||
| 258 | - | ||
| 259 | 236 | ==Chart Achsenbeschriftung== | |
| 260 | 237 | ||
| 261 | 238 | ``` pascal | |
| 262 | 239 | begin | |
| 263 | 240 | ... | |
| 264 | 241 | // Legt fest, das die Achse eine Beschriftung hat | |
| 265 | 242 | varXLApp.Workbooks[1].ActiveChart.Axes(xlValue).HasTitle:= True; | |
| 266 | 243 | // Ermöglicht das Schreiben des Eurozeichens | |
| 267 | 244 | wstrUebergabe := UTF8ToUTF16('€'); | |
| 268 | 245 | varXLApp.Workbooks[1].ActiveChart.Axes[xlValue].AxisTitle | |
| 269 | 246 | .Characters.Text := wstrUebergabe; | |
| 270 | 247 | ... | |
| 271 | 248 | end; | |
| 272 | 249 | ``` | |
| 273 | 250 | ||
| 274 | - | ||
| 275 | 251 | ==Chart Kategorie== | |
| 276 | 252 | ||
| 277 | 253 | ``` pascal | |
| 278 | 254 | begin | |
| 279 | 255 | ... | |
| 280 | 256 | // Legt fest, dass die Chart Kategorie einen Titel hat | |
| 281 | 257 | varXLApp.Workbooks[1].ActiveChart.Axes(xlCategory, xlPrimary).HasTitle := True; | |
| 282 | 258 | // Legt den Namen der Chart Kategorie fest | |
| 283 | 259 | varXLApp.Workbooks[1].ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text := 'Jahre'; | |
| 284 | 260 | // Legt die Schriftfarbe der Chart Kategorie fest | |
| 285 | 261 | varXLApp.Workbooks[1].ActiveChart.Axes[xlCategory].TickLabels.Font.Color:= vbBlue; | |
| 286 | 262 | ... | |
| 287 | 263 | end; | |
| 288 | 264 | ``` | |
| 289 | 265 | ||
| 290 | - | ||
| 291 | 266 | ==Verschiebt das Chart in ein Worksheet== | |
| 292 | 267 | ||
| 293 | 268 | ``` pascal | |
| 294 | 269 | begin | |
| 295 | 270 | ... | |
| 296 | 271 | varDiagramm.Location (Where:= xlLocationAsObject, Name:= 'Tabelle1'); | |
| 297 | 272 | ... | |
| 298 | 273 | end; | |
| 299 | 274 | ``` | |
| 300 | 275 | ||
| 301 | 276 | --- | |
| 302 | 277 | *From the Free Pascal wiki, page "ExcelAutomation2007plus/de", as it stood on 2020-02-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 303 | 278 | Category: Tutorials/de |
