27
Excel-VBA Mit über 1000 Makros für Excel 2000 bis 2010 1 *• "" ~j " •"• i "•» '- •'" •" •" ' -'s!"' Markt+Technik KOMPENDI UM J

Excel-VBA · Kapitel 17 Excel und sein Umfeld 773 Kapitel 18 Fehlerbehandlung, Tuning und Schutz von VBA-Projekten 799 Kapitel 19 FAQ zur Programmierung mit Excel 815 Anhang A Nützliche

  • Upload
    others

  • View
    9

  • Download
    1

Embed Size (px)

Citation preview

Excel-VBAMit über 1000 Makros für Excel

2000 bis 2010

1 *• "" • • ~j " •"• i " •» '- • ' " •" •" ' - ' s ! " '

Markt+Technik

KOMPENDI UM J

Überblick

Vorwort 33

Kapitel 1 Grundsätzliches zur Programmierung 37

Kapitel 2 Die Arbeitsumgebung für die Programmierung 45

Kapitel 3 Datentypen, Variablen und Konstanten 61

Kapitel k Sprachelemente in VBA in der praktischen Anwendung 69

Kapitel 5 Zellen und Bereiche programmieren 113

Kapitel 6 Die Programmierung von Spalten und Zeilen 233

Kapitel 7 Tabellenblätter programmieren 309

Kapitel 8 Die Programmierung von Arbeitsmappen 361

Kapitel 9 Diagramme und Pivot-Tabellenberichte programmieren 413

Kapitel 10 Benutzerdefinierte Funktionen und Funktionsmakros 461

Kapitel 11 Programmierung mit Windows-API-Aufrufen 511

Kapitel 12 Ereignisse in Excel einsetzen 531

Kapitel 13 VBE-Programmierung 597

Kapitel 1^ Dialoge, Meldungen und UserForms programmieren 615

Kapitel 15 Steuerelemente in Tabellen programmieren 687

Kapitel 16 Eigene Menüs und Symbolleisten erstellen 715

Teil 1 - Programmierung von Menüs, Symbolleisten und Kontextmenüs. . . 715

Teil II - Ribbon-Programmierung 762

Kapitel 17 Excel und sein Umfeld 773

Kapitel 18 Fehlerbehandlung, Tuning und Schutz von VBA-Projekten 799

Kapitel 19 FAQ zur Programmierung mit Excel 815

Anhang A Nützliche und interessante. Makros 833

Anhang B Das Wichtigste in einem Add-In 859

Anhang C Listings 875

Anhang D Excel-Dateien sicher schützen und verteilen 897

Anhang E Der VBA-Code-Viewer 911

Das VBA-Repository 912

Index 915

Inhalt

Vorwort 33

Über den Autor 35

Kapitel 1 Grundsätzliches zur Programmierung 37

1.1 Wie gehe ich von Anfang an richtig vor? 38

Den Makrorekorder einsetzen 38

Die Aufzeichnung des Makrorekorders ergänzen 40

Makro ausführen 41

Wie erfahre ich mehr über die einzelnen Befehle? 43

Kapitel 2 Die Arbeitsumgebung für die Programmierung 45

2.1 Die Scroll Area festlegen 46

2.2 Tabellenblätter ein- und ausblenden 46

2.3 Neue Module einfügen 47

2.k Die Symbolleiste Bearbeiten 48

Eigenschaften/Methoden anzeigen 48

Konstanten anzeigen 49

Quickinfo oder Paramterinfo 49

Ganzes Wort 50

Einzüge vergrößern bzw. verkleinern 50

Haltepunkte setzen 50

Kommentare im Code hinterlegen 51

Lesezeichen setzen 51

2.5 Automatische Syntaxprüfung 52

Befehle in der nächsten Zeile fortsetzen 52

Mehrere Befehle in einer Zeile 53

Automatische Anpassung der einzelnen Befehle 53

Inhalt

2.6 Schnelles Arbeiten über Tastenkombinationen 54

2.7 Suchen & Ersetzen 56

2.8 Der Objektkatalog 56

2.9 Die Testumgebung 58

Hilfe im Direktfenster 58

Code Schritt für Schritt durchlaufen lassen 59

Kapitel 3 Datentypen, Variablen und Konstanten 61

3.1 Der Einsatz von Variablen 61

Regeln für die Syntax von Variablen 62

Variablen am Beginn vom Makro deklarieren 62

Variablendeklarationen erzwingen 63

Die wichtigsten Variablentypen 63

Noch kürzere Deklaration von Variablen 64

Die unterschiedlichen Variablentypen 64

Die Objektvariablen 66

3.2 Die Verwendung von Konstanten 68

Kapitel 4 Sprachelemente in VBA in der praktischen Anwendung 69

I1..1 Verzweigungen 69

Normale Verzweigungen 70

Verzweigungen in Blöcke einteilen 73

Die Kurzform einer Verzweigung 74

, k-2 Die Anweisung Select Case für mehr Übersicht 75

Indizes in Farben umsetzen 75

Zahlen in Texte umwandeln 76

Formate prüfen mit VBA 77

Fensterstatus ermitteln 78

Makro bei ungültigem Wert beenden 78

Excel-Version feststellen 79

k3 Schleifen in Excel praxisgerecht einsetzen 80

For...Next-Schleifen 80

Jede zweite Zeile ausblenden 82

For Each...Next-Schleifen 84

8

Inhalt

Die Schleife Do UntiL.Loop 94

Kopien entfernen 98

Listen sortieren und doppelte Sätze löschen 100

Die Schleife Do While...Loop 105

Kapitel 5 Zellen und Bereiche programmieren 113

5.1 Die Navigation 113

Die übersichtlichere Mehrfachauswahl 114

Relative Markierungsformen 115

Mischformen von Markierungen 118

Bestimmte Zellen ansteuern 118

Markierung und Zellen auslesen 121

Verwendete Zellen zählen 122

Zellen im Verbund 122

Alle Zellen markieren 126

Die umliegenden Zellen markieren 126

Auf Zellen zugreifen, ohne darauf zu sitzen 127

Aktive Zelle in definiertem Bereich? 128

5.2 Bereiche und Zellen benennen 129

Bereich benennen 129

Mehrere Zellen benennen 130

Konstante als Namen vergeben 132

Bezüge von benannten Bereichen ermitteln 133

Namenprüfung einer Zelle 134

Benannte Bereiche markieren 134

Namenprüfung eines Bereichs 135

Alle Namen protokollieren 135

Namen ändern 136

Bezugsadressen von Namen ändern 137

Dynamische Datenbezüge herstellen 139

Wo steht der Zellcursor? 141

Namen verbergen 142

Namen löschen 143

Benutzerdefinierte Listen erstellen 143

Inhalt

5.3 Die Formatierung von Zellen und Bereichen 145

Schriftart ermitteln 145

Schriftart ändern 145

Zelleninhalte löschen 146

Schriftfarbe teilweise ändern 147

Grenzwerte sofort sichtbar 148

Sonderzeichen einfügen 149

Chemische Formeln formatieren 151

Rahmenart und -färbe bestimmen 152

Rahmen übertragen 153

Zahlenformate festlegen 154

Datumsformate festlegen 154

Formate übertragen 155

Formate löschen 155

Nur Zahlenformate übertragen 155

Die bedingte Formatierung 157

Formate suchen und ersetzen 161

5./j Formeln einsetzen 162

Werte addieren 162

Werte subtrahieren 162

Werte multiplizieren 163

Werte dividieren 164

Werte potenzieren 164

Komplexere Berechnungen 164

5.5 Funktionen erfassen 165

Bedingtes Zählen von Werten (ZÄHLENWENN) 165

Bedingte Summierung (SUMMEWENN) 166

Auskunftssystem erstellen (SVERWEIS) 167

Offene Posten-Verwaltung (WENN) 168

Zahlen summieren (SUMME) 169

Rechnungsfälligkeit ermitteln (EDATUM) 170

Minimalwert ermitteln 170

Auswertungen durchführen 171

Bereiche summieren 175

10

Inhalt

Mittelwert über Input-Box ermitteln 176

Eurokonvertierung leicht gemacht 177

Obergrenzen festlegen bzw. runden 179

Formeln und Verknüpfungen schnell finden 180

Bezüge umsetzen 182

5.6 Texte und Zahlen manipulieren 184

Texte finden 184

Daten bereinigen nach Datentransfer 186

Zellen bereinigen oder manipulieren 187

Telefonliste bearbeiten 189

Warennummer bilden 190

Formeln tauschen 191

Nullen reinpumpen 193

Nullen entfernen 193

Konstante Werte löschen und Formeln erhalten 194

Bereiche säubern 195

Leere Zellen löschen 196

Formeln entfernen 198

Buchstaben aus Zellen entfernen 198

Dateinamen aus Pfad extrahieren 199

Namen drehen 199

5.7 Gültigkeitsprüfung in Excel 200

Zellen mit Gültigkeitsfunktion erkennen 201

Gültigkeitskriterien erstellen 202

Datumsgrenzen festlegen 203

Keine Arbeit am Sonntag 204

Gültigkeitstypen ermitteln 206

Gültigkeitskriterien löschen 207

5.8 Kommentare in Excel 207

Kommentare einfügen 207

Tabelle mit Kommentaren füllen 210

Kommentare schnell finden 211

Kommentare löschen 211

Kommentare protokollieren 212

11

Inhalt

Kommentare aus Zellentexten bilden 214

Kommentare formatieren 214

Kommentarfester anpassen 215

5.9 Sonstige Lösungen mit Zellen und Bereichen 216

Die Anzahl der Wörter im markierten Bereich ermitteln 216

Das Auftauchen eines Zeichens im markierten Bereich ermitteln 217

Werte in Bereichen zählen 218

Die Eckdaten eines Bereiches ermitteln 219

Erste freie Zelle in Bereich ermitteln 220

Zellen mit gleichem Inhalt füllen 221

Markierter Bereich wird zum Druckbereich 222

Bereiche kopieren 222

Grafiken in Bereiche integrieren 224

Zellen sperren 228

Nicht gesperrte Zellen markieren 229

Mehrzellige Eingabe in Zellen 229

Daten suchen 230

Kapitel 6 Die Programmierung von Spalten und Zeilen 233

6.1 Zeilen und Spalten markieren, zählen und ansteuern 234

Mehrere Zeilen auf dem Tabellenblatt markieren 234

Mehrere Spalten auf dem Tabellenblatt markieren 235

Zeilen und Spalten markieren 236

Markierte Spalten in Markierung zählen 236

Letzte freie Zelle in Spalte anspringen 237

Bestimmte Zelle in Spalte ansteuern 237

Anzahl der benutzten Spalten und Zeilen ermitteln 237

Zeilen und Spalten im umliegenden Bereich zählen 238

Erste und letzte Zeile im verwendeten Bereich ermitteln 239

Adresse der letzten verwendeten Zelle einer Zeile ausgeben 241

Markierte Spalten einer Zeile zählen 241

Mehrfachsprünge durchführen 242

Markieren von Zeilen ab bestimmter Position 243

Letzte Zeile in Tabelle einfärben 244

12

Inhalt

6.2 Zeilenhöhe und Spaltenbreite einstellen 245

6.3 Zeilen einfügen und löschen 248

Zeile einfügen 248

Mehrere Zeilen einfügen 248

Zeile löschen 250

Mehrere Zeilen löschen 250

Löschen von Zeilen mit bestimmtem Text 251

Datumszeilen löschen 253

Wochenend-Zeilen löschen 254

Zeilen vor Startdatum löschen 255

Leerzeilen löschen 256

Zeilen innerhalb einer Markierung löschen 257

Zeilen bis auf Überschrift löschen 258

Doppelte Sätze löschen 258

64 Spalten einfügen, löschen und bereinigen 259

Spalte einfügen 260

Mehrere Spalten einfügen 260

Spalte löschen 260

Mehrere Spalten löschen 260

Spalten bereinigen 261

6.5 Zeilen ein- und ausblenden 262

Leere Zeilen ausblenden 264

Alle Zellen einblenden 265

Versteckte Zeilen löschen 266

6.6 Spalten ein- und ausblenden 267

6.7 Spalten und Zeilen formatieren 268

6.8 Daten sortieren 271

6.9 Daten ausdünnen 272

6.10 Spalten vergleichen 273

6.11 Text auf Spalten verteilen 274

6.12 Zeilenumbrüche schnell festlegen 276

6.13 Daten übertragen 280

6.14 Wiederholungszeilen und -spalten definieren 281

13

Inhalt

6.15 Auf der Suche nach der richtigen Zeile 282

Die Suche über die Schleife 282

6.16 Direktsuche bei größeren Datenbeständen 285

6.17 Zeilen filtern 286

6.18 AutoFilter aktivieren bzw. deaktivieren 287

6.19 Filterkriterien setzen 289

Unterbestände ermitteln 289

Bestands- und Preiskontrolle durchführen 290

Zeilen in einem bestimmten Wertebereich einblenden 291

Extremwerte ermitteln 292

Filtern mit Datumswerten 293

6.20 Prüfungen und Auswertungen von Filtern 294

In welchen Spalten ist ein Filterkriterium gesetzt? 294

Wie viele Zeilen sind gefiltert? 295

Wie viele Zellen sind gefiltert? 296

Den größten Wert ermitteln 298

Die erste bzw. letzte gefilterte Zeile ermitteln 299

Wie lauten die Filterkriterien? 300

6.21 Doppelte Werte mit dem Spezialfilter ermitteln 301

6.22 Gefilterte Daten transferieren 302

Gefilterte Zeilen in anderes Tabellenblatt übertragen 302

Gefilterte Zeilen in eine Textdatei übertragen 303

6.23 Filtern von Daten auch bei geschützten Tabellen durchführen 304

6.21» Gliederungen 305

Gliederung einfügen 305

Gliederung entfernen 307

Gruppierung anzeigen und ausblenden 307

Gliederungssymbole bedienen 308

Kapitel 7 Tabellenblätter programmieren 309

7.1 Tabellenblätter einfügen 310

7.2 Tabellen markieren 311

Inhalt

7.3 Tabellenblätter benennen 312

Tabelle nach Tagesdatum benennen 312

Tabelle nach formatiertem Datum benennen 313

Tabelle nach Zelleninhalt benennen 314

Tabelle nach Anwender und Tagesdatum benennen 314

Tabelle einfügen und benennen kombinieren 314

7.ij Tabellenblätter löschen 314

Tabelle löschen ohne Rückfrage 315

Alle Tabellen löschen, nur die aktive Tabelle nicht 316

Alle leeren Tabellen in Arbeitsmappe löschen 317

7.5 Tabellenblätter aktivieren 318

7.6 Tabellenblätter gruppieren 318

Mehrere Tabellen gruppieren 318

Alle Tabellen gruppieren 319

Gruppierte Tabellen übertragen 319

Gruppierte Tabellen ermitteln 320

7.7 Tabellenblätter schützen 320

Tabellenschutz aufheben 321

Alle Tabellen einer Arbeitsmappe schützen 321

Aufgaben trotz Blattschutz ausführen 322

Weitere Schutzfunktionen ab Excel 2002 323

7.8 Tabellenblätter ein- und ausblenden 324

Tabellenblätter sicher ausblenden 325

Tabellen je nach Status ein- oder ausblenden 325

Alle Tabellenblätter anzeigen 325

Alle Tabellen außer der aktiven Tabelle ausblenden 326

7.9 Kopf- und Fußzeilen einrichten 326

Fußzeile mit Anwendernamen 327

Fußzeile mit Pfad 327

Kopfzeile mit Datums- und Zeitangabe 327

Fußzeile mit Dokumenteigenschaften füllen 328

Kopfzeile mit Logo einrichten 329

Mehrzellige Fußzeile anlegen 331

15

Inhalt

7.10 Druckbereiche festlegen 334

7.11 Tabellenblätter drucken 335

Mehrere Kopien drucken 335

Markierte Bereiche drucken 335

Mehrere Tabellenblätter drucken 336

Den integrierten Drucken-Dialog aufrufen 336

Wie viele Druckseiten enthält die Tabelle? 337

7.12 Tabellenblätter kopieren, verschieben und einfügen 338

Tabellenblatt kopieren 338

Tabellenblatt verschieben 339

Tabellenblatt ohne Formeln und Verknüpfungen übertragen 339

Tabelle in andere Arbeitsmappe kopieren 340

Tabellenblatt als E-Mail versenden 341

7.13 Tabellenblätter sortieren 342

7.11» Tabellen suchen 342

7.15 Tabellen sichern 344

Verwendete Zeilen in andere Tabelle transferieren 344

Tabelle kopieren und umbenennen 345

Texte übertragen 345

Tabelle in Textdatei schreiben 346

7.16 Tabellenblätter konsolidieren 347

Tabellenblätter summieren (Festwert) 348

Tabellenblätter summieren (Verknüpfung) 349

Tabellen in einer Tabelle zusammenführen 350

7.17 Sonstige Lösungen mit Tabellen 352

Registerlaschen ein- und ausblenden 352

Registerlaschen einfärben 353

Diashow starten 354

Tabellenblätter verlinken 354

Bilder in Tabellen einfügen 355

Hintergrundbild einfügen 358

Tabellenansicht anpassen 358

16

Inhalt

Kapitel 8 Die Programmierung von Arbeitsmappen 361

8.1 Arbeitsmappen speichern und sichern 361

Arbeitsmappe doppelt sichern 363

Bei Bedarf verzeichnis anlegen 363

Integrierten Speichern unter-Dialog aufrufen 364

Die Ermittlung des Pfades der geladenen Arbeitsmappe 364

Zustand der Arbeitsmappe ermitteln 365

Arbeitsmappe ohne Makros speichern 365

Arbeitsmappe als Textdatei speichern 366

Arbeitsmappe aktuell speichern 367

8.2 Arbeitsmappen öffnen 368

Den integrierten Öffnen-Dialog aufrufen 370

Liste der geöffneten Arbeitsmappen beeinflussen 370

Mehrere Arbeitsmappen öffnen 372

Alle geöffneten Arbeitsmappen ermitteln 373

Die aktuellste Arbeitsmappe öffnen 374

Arbeitsmappe ohne Makrodialog starten 375

8.3 Arbeitsmappen schließen 376

Arbeitsmappe schließen - Änderungen akzeptieren 376

Arbeitsmappe schließen - Änderungen verwerfen 376

Arbeitsmappe schließen bei Vernachlässigung 377

Alle Arbeitsmappen bis auf eine schließen 378

&.k Arbeitsmappe löschen 379

Arbeitsmappe nach Verfallsdatum löschen 379

8.5 Arbeitsmappen einfügen 380

Mappe mit Wochen-Tabellen anlegen 381

Arbeitsmappen aus Zellen erstellen 381

8.6 Arbeitsmappen drucken 382

Nur bestimmte Tabellen drucken 382

8.7 Arbeitsmappen und Dokumenteigenschaften 384

Dokumenteigenschaftsnamen abfragen 384

Dokumenteigenschaftsinhalte ermitteln 385

Letztes Speicherdatum abfragen 386

Erstelldatum herausfinden und manipulieren 387

17

Inhalt

Autor einer Arbeitsmappe ermitteln 388

Zusätzliche Dokumenteigenschaft anlegen 388

Zugriffsdaten einer Arbeitsmappe ermitteln 390

8.8 Arbeitsmappen und Verknüpfungen 391

Verknüpfungen in Hyperlinks umwandeln 391

Verknüpfungen in Arbeitsmappe ermitteln 393

Verknüpfungen aus der Arbeitsmappe entfernen 395

Verknüpfungen aktualisieren 397

Alle Dateien aus einem Ordner dokumentieren 397

8.9 Arbeitsmappe durchsuchen 400

8.10 Arbeitsmappen zusammenführen 402

8.11 Arbeitsmappen miteinander vergleichen 405

8.12 Arbeitsmappen säubern 406

Alle Grafikobjekte aus Arbeitsmappe entfernen 406

Alle Kommentare einer Arbeitsmappe löschen 407

Benutzerdefinierte Listen löschen und erstellen 408

Formatvorlagen löschen und erstellen 409

Alle benutzerdefinierten Namen einer Mappe löschen 411

Kapitel 9 Diagramme und Pivot-Tabellenberichte programmieren 413

9.1 Diagramme erstellen 414

Kosten im Säulendiagramm darstellen , 415

Das Zylinderdiagramm auf Knopfdruck 417

„ Das Balkendiagramm aus Daten in der Umgebung 418

Tagesumsätze im Liniendiagramm anzeigen 419

Tagesgenaue Formatierung im Punktdiagramm 421

Mittelwert in Diagramm bilden 423

9.2 Diagramme löschen 425

Diagrammblätter aus Arbeitsmappe entfernen 425

Eingebettete Diagramme aus Arbeitsmappe löschen 426

9.3 Diagramme identifizieren 426

Diagramme umbenennen 427

9.«t Datenbasis und Diagramm im Wechsel 427

18

Inhalt

9.5 Datenbeschriftungen hinzufügen und auslesen 428

Datenbeschriftung aus Zellen verwenden 430

Daten aus Diagrammen auslesen 432

9.6 Diagramme positionieren und skalieren 434

Die Höhe und Breite eines Diagramms festlegen 434

Diagramme platzieren 435

Diagramme skalieren 438

9.7 Diagramme als Grafiken speichern 440

9.8 Diagramme formatieren 441

Gewinn und Verlust in einem Säulendiagramm präsentieren 441

Eine Ist-Darstellung in einem Säulendiagramm darstellen 444

Legenden formatieren 445

Zusätzliche Labels hinzufügen 445

9.9 Dynamische Diagramme erzeugen 447

9.10 Pivot-Tabellenberichte erstellen 449

9.11 Pivot-Tabellen aktualisieren 451

Einzelne Pivot-Tabelle aktualisieren 451

Mehrere Pivot-Tabellen auf einem Tabellen blatt aktualisieren 452

Alle Pivot-Tabellen in Arbeitsmappe aktualisieren 452

9.12 Pivot-Tabellen dynamisch erweitern 453

9.13 Pivot-Tabellen sortieren 455

9.11» Pivot-Tabellen formatieren 456

9.15 Seitenfeld der Pivot-Tabelle bestimmen 457

Seitenfeldeinstellungauslesen 457

Seitenfelder initialisieren 458

Seitenfelder in Abhängigkeit von Zellen setzen 458

Kapitel 10 Benutzerdefinierte Funktionen und Funktionsmakros 461

10.1 Benutzerdefinierte Funktionen 461

Aktive Arbeitsmappe ermitteln 462

Aktives Tabellenblatt ermitteln 463

Ist eine Tabelle leer? 465

Ist eine Tabelle geschützt? 465

19

Inhalt

Befinden sich Daten in einer bestimmten Spalte? 465

Letzten Wert einer Spalte ermitteln 466

Letzten Wert einer Zeile ermitteln 467

Aktiven Bearbeiter identifizieren 468

Funktion zum Umsetzen von Noten 468

Rangfolge als Text ausgeben 469

Enthält eine bestimmte Zelle eine Formel? 470

Enthält eine bestimmte Zelle ein Gültigkeitskriterium? 471

Enthält eine Zelle einen Kommentar? 472

Ist eine bestimmte Zelle verbunden? 472

Störende Zeichen eliminieren 473

Initialen aus Namen erstellen 473

Formeln und Verknüpfungen in Festwerte umwandeln 474

Nur Zellen mit Fettdruck addieren 475

Nur Zellen mit roter Schriftfarbe addieren 476

Mit Uhrzeiten rechnen 476

Erweitertes Runden durchführen 478

Hintergrundfarben auslesen 478

Zahlenformate ermitteln 479

Schnelles Umrechnen von Geschwindigkeiten 480

Extremwerte berechnen 481

Erste Ziffer in einer Zelle ermitteln 482

Buchstaben aus Zellen entfernen 484

Anzahl der Ziffern einer Zelle ermitteln 485

Römische Zahlen in arabische wandeln 485

Befindet sich eine Grafik in einer Tabelle? 487

Nur Zahlenwerte zulassen 487

10.2 Modulare Funktionen schreiben 489

Dateien in einem Verzeichnis zählen 489

Prüfung, ob eine bestimmte Datei existiert 490

Prüfung, ob eine bestimmte Datei geöffnet ist 491

Prüfung, ob eine Datei gerade bearbeitet wird 492

Prüfung, ob ein bestimmter Name in der Arbeitsmappe verwendet wird 492

Prüfung, ob ein Add-In eingebunden ist 493

20

Inhalt

Dokumenteigenschaften einer Arbeitsmappe ermitteln 495

Bedingte Formatierung mit mehr als drei Farben 497

Wochenende ermitteln 499

Letzten Tag im Monat ermitteln 500

Das Osterdatum für ein bestimmtes Jahr ermitteln 501

Den letzten Wert einer Spalte ermitteln 503

Grafikelemente in einem definierten Bereich löschen 504

10.3 Funktionen verfügbar machen 506

Speichern der Funktionen in der persönlichen Arbeitsmappe 506

Speichern der Funktionen in einem Add-In 507

Ein Add-In einbinden 508

Kapitel 11 Programmierung mit Windows-API-Aufrufen 511

11.1 Ermittlung der Laufwerke am PC 512

n.2 Bedienung des CD-ROM-Laufwerks 514

11.3 Bildschirmauflösung ermitteln 515

ii.it Ist ein externes Programm gestartet? 515

11.5 Wie lange läuft ein externes Programm? 516

n.6 Excel schlafen schicken 518

11.7 Verzeichnisse erstellen/löschen über API 518

11.8 Netzlaufwerk verbinden 519

11.9 Verzeichnisbaum anzeigen und auswerten 520

11.10 Windows-Info-Bildschirm anzeigen 522

11.11 Windows-Verzeichnis ermitteln 522

11.12 Excel-Verzeichnis ermitteln 524

11.13 Standardverzeichnis temporär ändern 524

n.iit Anwendernamen ausgeben 525

11.15 Computernamen ermitteln 525

11.16 Texte mit API-Funktionen konvertieren 526

11.17 Cursorposition in Pixel angeben 526

11.18 Zwischenablage löschen 528

11.19 Sounds per API-Funktion ausgeben 528

21

Inhalt

11.20 PC piepsen lassen 528

11.21 Dateien suchen 529

11.22 Tasten abfangen 530

Kapitel 12 Ereignisse in Excel einsetzen 531

12.1 Ereignisse für die Arbeitsmappe 532

Allgemeine Vorgehensweise beim Erstellen von Arbeitsmappen-Ereignissen 533

Aktivieren des richtigen Tabellenblatts 534

Einen Bereich begrenzen 536

Alle ausgeblendeten Tabellen bei Bedarf einblenden 537

Letzten Bearbeiter einer Arbeitsmappe ermitteln 538

Makro am Monatsende starten 538

Symbolleisten ein- und ausblenden 539

Datumszelle in Tabelle finden 541

Arbeitsmappe schließen bedingt verhindern 541

Arbeitsmappe ohne Rückfrage schließen 542

Letztes Bearbeitungsdatum festhalten 542

Datenbestand vor dem Speichern sortieren 543

Dauer der Bearbeitung einer Mappe festhalten 544

Schnell Tabellen gleicher Struktur vergleichen 545

Die Lösung für das sparsame Drucken 548

Einfügen von Blättern verhindern 549

Druckstatistik führen 549

Alle Ereignisse für die Arbeitsmappe im Überblick 549

12.2 Ereignisse für das Tabellenblatt 550

Allgemeine Vorgehensweise bei der Einstellung von Tabellenereignissen 551

Passworteingabe beim Aktivieren einer Tabelle 552

Starten einer UserForm 552

Beim Verlassen eines Tabellenblatts Daten neu berechnen 553

»Schiffe versenken« spielen 554

Vergleich von zwei Spalten 555

Änderungen in einer Tabelle sichtbar machen 557

Unterschiedliche Makros je nach Zellenwert starten 558

Automatisch die Spaltenbreite einstellen 560

22

Inhalt

Mehrere Bereiche überwachen 561

Eingabe auf mehreren Tabellen gleichzeitig durchführen 562

Änderungen dokumentieren 563

Wareneingänge dokumentieren 563

Artikelliste bereinigen 564

Nur einmalige Eingabe zulassen 565

Tabellenname aus Zelle herleiten 566

Automatische Suche von Datensätzen 567

Alternative Formularsteuerung 568

Automatisches Runden nach Eingabe 569

Eine Blaupause erzeugen 570

Formelcheck nach Eingabe 571

Nettowert automatisch ausweisen 571

Eine selbst rechnende Zelle 572

Eingabe von Dubletten verhindern 573

Die Lesbarkeit der aktuellen Auswahl erhöhen 574

Mehr Übersichtlichkeit in Tabellen herstellen 576

Aktuelle Zelle übertragen 577

Eingabe verhindern 578

Markierung überwachen 579

Mausklicks überwachen 580

Die Aktualisierung von Pivot-Tabellen überwachen 582

Direkte Verbindung zu einer anderen Tabelle erstellen 582

Alle Ereignisse für Tabellen im Überblick 583

12.3 Reaktion auf Tastendruck 584

Tastenkombinationen ein- und ausschalten 586

Zeilenumbrüche zurücksetzen 587

Texte einfügen 588

Speichern per Tastenkombination verhindern 589

Blattsperre ohne Blattschutz erstellen 589

12.it Zeitsteuerung in Excel 591

Regelmäßig die Uhrzeit anzeigen 591

Die Zeit läuft 592

Regelmäßige Kontrolle, ob Arbeitsmappe verfügbar ist 594

Zellen blinken lassen 595

23

Inhalt

Kapitel 13 VBE-Programmierung 597

13.1 Die VBE-Bibliothek einbinden 598

13.2 Die VBE-Bibliothek deaktivieren 599

13.3 Weitere Bibliotheken einbinden 600

Objektbibliotheken deaktivieren 600

Informationen zu Objektbibliotheken ausgeben 601

13.4 VBE-Editor aufrufen 602

13.5 Die VBE ein- und ausschalten 602

13.6 Neue Module einfügen 603

13.7 Einzelne Module löschen 604

13.8 Makros löschen 604

Einzelnes Makro löschen 604

Alle Makros aus einer Arbeitsmappe entfernen 605

13.9 Module mit Makros bestücken 606

Makro zeilenweise in ein Modul übertragen 606

Makros aus einer Textdatei in ein Modul überführen 607

Alle Mappen aus einem Verzeichnis mit Code versorgen 609

13.10 Export von VBA-Modulen in Textdateien 611

13.11 Identifikation von Komponenten 612

Kapitel ii* Dialoge, Meldungen und UserForms programmieren 615

iit.i Der Meldungen-Dialog Msgbox 616

Welche Schaltfläche wurde angeklickt? 617

Löschrückfrage 618

Informationen anzeigen 619

Ist eine bestimmte Arbeitsmappe vorhanden? 619

14.2 Textfelder für Meldungen einsetzen 620

i/t-3 Die Eingabemaske InputBox 621

Mehrwertsteuer errechnen 623

Mehrere Eingaben erfassen 623

Bereiche über eine Input-Box markieren 624

Funktionen eingeben über Input-Box 625

Inhalt

Kt.it Integrierte Dialoge einsetzen 626

Den Öffnen-Dialog aufrufen 626

Der Dialog Öffnen mit automatischer Passworteingabe 627

Die Farbpalette aufrufen 627

Den Dialog Drucken aufrufen 628

Den Dialog für den Blattschutz anzeigen 629

Den Suchen-Dialog aufrufen 629

Den Dialog Optionen aufrufen 629

Weitere integrierte Dialoge in Excel 630

11t.5 Eigene Dialoge entwerfen und programmieren 631

Eine UserForm zeichnen 631

Der Entwurf einer automatischen dialoggesteuerten Rechnungserfassung 633

Der erste Aufruf der neuen UserForm 636

Reihenfolge der Elemente festlegen 636

UserForms mit Makros bestücken 637

Die UserForm beenden 639

Alle Textfelder initialisieren 640

Inhalte von Textfeldern markieren 640

UserForm mit Tabellendaten füllen 641

Textfelder mit Farben belegen 644

Textfelder prüfen 645

Bezeichnungsfelder dynamisch halten 647

Textfelder ein- und ausblenden 648

Passwortabfrage über UserForm 649

Die Ausmaße von UserForms ändern 651

Die Hintergrundfarbe der UserForm festlegen 653

Listenfelder in UserForms programmieren 655

Listenfelder und Textfelder kombinieren 656

Listenfeld löschen 657

Listeneinträge markieren 658

Listenfeld ohne Leerzeilen füllen 659

Mehrspaltige Listenfelder programmieren 660

Drop-down-Felder einsetzen 662

Drop-downs füllen ohne Duplikate 664

25

Inhalt

Drop-down dynamisch füllen 665

Auswahl aus Drop-down-Feld erzwingen 665

Der Datums-BUG in Drop-down-Felder 666

Abwesenheitszeiten über UserForm erfassen 667

Multiseiten erstellen 670

Multiseiten im Praxiseinsatz 672

Fortschrittsbalken für UserForms programmieren 675

Bilder in UserForms anzeigen 676

iit.6 Zusätzliche Steuerelemente für UserForms 679

Das Kalendersteuerelement 679

Der LevelSlider 682

Das Spreadsheet-Steuerelement 683

Das TreeView-Steuerelement 684

Kapitel 15 Steuerelemente in Tabellen programmieren 687

15.1 Schaltflächen einsetzen 688

Eine Schaltfläche automatisch in eine Tabelle einfügen 688

Schaltfläche mit Bild einfügen 689

Makro automatisch starten 690

Welche Schaltfläche wurde angeklickt? 691

Die mobile Schaltfläche 691

Umschaltflächen programmieren 692

15.2 Textboxen programmieren 695

Textfelder auslesen 695

Textfelder mit Zelleninhalten füllen 696

Textfelder je nach Eingabe sperren 697

15.3 Drop-downs programmieren 698

Drop-down-Felder füllen 698

Drop-down-Felder sortieren 700

Drop-down-Felder leeren 701

Drop-down-Felder automatisch erstellen 701

15.it Listenfelder programmieren 702

Listenfelder füllen 702

Listenfelder bereinigen 703

26

Inhalt

15.5 Drehfelder programmieren 704

Preiskalkulation schrittweise durchführen 704

Objekte schrittweise drehen 705

15.6 Bildlaufleisten einsetzen 706

15.7 Schnelles Umschalten über Optionsfelder 707

15.8 Kontrollkästchen programmieren 708

Mehrfachauswahl mit Kontrollkästchen 708

Kontrollkästchen synchronisieren 709

Kontrollkästchen initialisieren 710

15.9 Steuerelemente identifizieren 711

Kapitel 16 Eigene Menüs und Symbolleisten erstellen 715

Teil 1 - Programmierung von Menüs, Symbolleisten und Kontextmenüs 715

16.1 Die Programmierung von Menüs 717

Ein- und Ausblenden der Menüleiste 718

Ein eigenes Menü erstellen 719

Menübefehle im neuen Menü einfügen 720

Erstellung der Menüleiste automatisieren 723

Die nützlichen Makros aus dem neuen Menü 724

Menüs identifizieren und ansprechen 727

Ganze Menüs deaktivieren 728

Bestimmte Menübefehle suchen und deaktivieren 729

Kaskaden-Menüs erstellen 733

Menübefehle mit Häkchen programmieren 736

16.2 Die Programmierung von Kontextmenüs 743

Kontextmenüs deaktivieren 743

Das Zellen-Kontextmenü erweitern 744

Kontextmenü aufbauen (dreistufig) 747

Kontextmenü zurücksetzen 748

16.3 Die Programmierung von Symbolleisten . . . 748

Neue Symbolleiste erstellen 748

Symbole in neue Symbolleiste integrieren 749

Symbole identifizieren 752

27

Inhalt

Symbolleisten schützen 754

Symbolleiste löschen 755

Grafiken in Symbolleisten integrieren 755

Symbolschaltflächen deaktivieren 757

Drop-downs in Symbolleisten einfügen 758

Teil II - Ribbon-Programmierung 762

i6.it Der »Custom Ul Editor« 762

16.5 Weitere wichtige Quellen und Hilfen 764

16.6 Eigene Ribbons programmieren 766

Ribbon mit Schaltflächen erstellen 766

Ribbon mit ComboBox erstellen 768

Ribbon mit bereits verfügbaren Funktionen bestücken 770

Kapitel 17 Excel und sein Umfeld 773

17.1 Textdateien im Zugriff von Excel 773

Textdateien speichern 774

Textdateien mit Trennzeichen einlesen 775

Textdateien fixer Länge öffnen 776

Mehrere Textdateien in eine Tabelle einfügen 777

17.2 Excel und Word im Duett 779

Excel-Tabelle unverknüpft nach Word übertragen 779

Excel-Tabelle verknüpft nach Word übertragen 783

17.3 Excel im Zusammenspiel mit Access 784

* Datenbankabfrage durchführen 785

Datenbank-Update durchführen ; 787

17.it Excel und Outlook 789

Tabelle als E-Mail versenden 789

Excel-Bereich als E-Mail versenden 791

Mehrere Arbeitsmappen per E-Mail versenden 792

E-Mail bei Änderung senden 794

Kontakte austauschen 795

28

Inhalt

Kapitel 18 Fehlerbehandlung, Tuning und Schutz von VBA-Projekten 799

18.1 Kleinere Fehler beheben 799

18.2 Schwerwiegendere Fehler 802

Fehler im Vorfeld erkennen und reagieren 802

18.3 Laufzeiten verkürzen 804

Befehle zusammenfassen 805

Variablen und Konstanten einsetzen 808

Berechnung und Bildschirmaktualisierung ausschalten 809

Integrierte Tabellenfunktionen anwenden 810

Weitere Faktoren zur Geschwindigkeitssteigerung 810

18.it VBA-Projekte schützen 811

Kapitel 19 FAQ zur Programmierung mit Excel 815

19.1 Bildschirmaktualisierung abschalten 815

19.2 Kopfzeile mit komplettem Pfad 816

19.3 Letzte Zelle in Tabelle finden 817

19.ii Texte suchen und ersetzen 817

19.5 Symbol in Symbolleiste deaktivieren 818

19.6 Nicht benötigte Zeilen löschen 819

19.7 Seitenwechsel festlegen 820

19.8 Druckbereich festlegen bzw. aufheben 820

19.9 Rechnen mit bedingten Formaten 821

19.10 Doppelte Sätze ermitteln 822

19.11 Zeilenumbrüche und Zellenverbunde aufheben 823

19.12 Zellenverknüpfungen finden 823

19.13 Datumsdifferenzen errechnen 825

19.11t Warnmeldungen deaktivieren 825

19.15 Datentransport nach Word 826

19.16 Laufwerk und Pfad der aktiven Arbeitsmappe anzeigen 828

19.17 Drag&Drop ein- und ausschalten 828

19.18 Bilder umbenennen 829

19.19 Dateiinformationen auslesen 830

29

Inhalt

Anhang A Nützliche und interessante Makros 833

A.i Arbeitsmappe als Verknüpfung auf den Desktop legen 833

A.2 Verknüpfungen in Festwerte umwandeln 834

A.3 Automatischer Bildleistenlauf programmieren 835

A.it Tasten deaktivieren 836

A.5 Doppelklicks deaktivieren 836

A.6 Zelleninhalte zusammenführen 838

A.7 Zahlenwerte richtig erkennen 838

A.8 Zellen blinken lassen 839

A.9 Makro aus Word starten 839

A.io Zusammenspiel von Zellen und Textboxen 840

A.11 Dateien als Objekte in Tabelle einfügen 841

A.12 Pfad als Fenstertitel ausgeben 842

A.13 Add-In einbinden 842

A.iit Runden mit Excel 843

A.15 Gefilterte Daten in einer Textdatei ausgeben 844

A.16 Steuerelemente mehrfach einfügen 846

A.17 Daten verschlüsseln 847

A.18 Eingaben widerrufen 848

A.19 Farbige Schaltflächen in Abhängigkeit programmieren 849

A.2O Gitternetzlinien ein- und ausblenden 849

A.21 Diagramm auf Tabelle positionieren 850

A.22 Gleiche Zellen suchen und formatieren 850

A.23 Datumsabhängige Formatierung 851

A.2it Arbeitsmappe kopieren 852

A.25 Ganzzahlige Werte extrahieren 852

A.26 Arbeiten mit Arrays 854

Anhang B Das Wichtigste in einem Add-In 859

B.1 Die Funktionen des MacAddlns 859

B.2 Die Ereignisse 861

30

Inhalt

B.3 Der Quellcode 862

B.it Menüerstellung 862

B.5 Die Makros 866

B.6 Formeln in Festwerte umwandeln 866

B.7 Aktive Tabelle als E-Mail verschicken 866

B.8 Aktive Tabelle in neuer Arbeitsmappe speichern 867

B.9 Informationen zu Datum und Zeit 867

B.io Informationen zur aktiven Arbeitsmappe 868

B.ii Öffnen aller verknüpften Arbeitsmappen 868

B.12 Verknüpfungen zu anderen Arbeitsmappen entfernen 869

B.13 Suchen von Texten in Arbeitsmappen 869

B.iit Zellen bearbeiten 870

B.15 Zellen markieren 871

B.i6 Zellen löschen 872

Anhang C Listings 875

Anhang D Excel-Dateien sicher schützen und verteilen 897

D.i LockXLS 898

Formel- und VBA-Schutz 900

Rechnergebundener Aktivierungscode 901

Einschränkung der Funktionalität mittels VBA 902

D.2 DoneEx 903

Formel- und VBA-Schutz 904

Rechnergebundener Aktivierungscode 906

D.3 Matrixlock 907

Matrix-Crypt 907

VBA-Code-Einbindung 909

Anhang E Der VBA-Code-Viewer 911

Das VBA-Repository 912

Index 915

31