Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

VBA-Befehle: Schnellreferenz für Excel-Automation und Office-Makros

VBA (Visual Basic for Applications) ist die Makrosprache der Microsoft-Office-Programme. Mit ihr automatisierst du Excel, Word und Access — von einfachen Zellberechnungen bis zu kompletten Berichts-Workflows.

Erste Schritte

VBA-Code wird im Visual Basic Editor (Alt+F11) geschrieben. Makros speicherst du in der Arbeitsmappe (als .xlsm-Datei) und startest sie über Alt+F8 oder ein Formular.

Sub HalloWelt()
    MsgBox "Hallo aus VBA"
End Sub

Variablen und Datentypen

Dim name As String
Dim zahl As Integer
Dim preis As Double
Dim ok As Boolean
name = "Lübeck"
zahl = 42

Zellen und Bereiche in Excel

Range("A1").Value = 100
Range("B1:B10").Value = "=ROW()*2"     ' Formel setzen
Cells(1, 3).Value = "C1"               ' Zeile 1, Spalte 3
Range("A1:D4").Interior.Color = RGB(200, 230, 255)
Worksheets("Daten").Activate

Kontrollstrukturen

If Range("A1").Value > 50 Then
    MsgBox "Groß"
Else
    MsgBox "Klein"
End If

For i = 1 To 10
    Cells(i, 1).Value = i
Next i

For Each zelle In Range("A1:A10")
    zelle.Font.Bold = True
Next zelle

Do While Range("A1").Value <> ""
    Range("A1").Offset(1, 0).Select
Loop

Schleifen über Tabellenblätter und Dateien

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    ws.Range("A1").Value = ws.Name
Next ws

Funktionen definieren

Function Flaeche(breite As Double, hoehe As Double) As Double
    Flaeche = breite * hoehe
End Function

' Aufruf: =Flaeche(5; 3) ergibt 15

Fehlerbehandlung

On Error Resume Next
Range("A1").Value = 1 / 0
If Err.Number <> 0 Then
    MsgBox "Fehler: " & Err.Description
    Err.Clear
End If

Praxis-Tipps

  • Makros in Arbeitsmappen speichern: Datei → Speichern unter → Excel-Makro-fähige Arbeitsmappe (.xlsm).
  • Mit Application.ScreenUpdating = False läuft VBA deutlich schneller.
  • Office blockiert Makros aus dem Internet standardmäßig — vertrauenswürdige Dateien explizit freigeben.

Verwandte Grundlagen: PowerShell-Befehle und Batch/CMD-Befehle.

Objective-C-Befehle: Schnellreferenz für iOS-Legacy und C-Erweiterung

Objective-C ist die Erweiterung von C um objektorientierte Konzepte nach Smalltalk-Vorbild. Bis 2014 war sie die Hauptsprache für iOS- und macOS-Apps — heute lebt sie vor allem in Legacy-Codebasen und als Brücke zu C-Bibliotheken weiter.

Erste Schritte

Objective-C-Dateien heißen .h (Header) bzw. .m (Implementierung). Auf Apple-Systemen übersetzt der Clang-Compiler mit clang -fobjc-arc oder Xcode den Code.

clang -fobjc-arc -framework Foundation hallo.m -o hallo
./hallo

Klassen definieren

// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
- (void)gruss;
@end

// Person.m
#import "Person.h"
@implementation Person
- (void)gruss {
    NSLog(@"Hallo, %@", self.name);
}
@end

Objekte erzeugen und verwenden

Person *p = [[Person alloc] init];
p.name = @"Lübeck";
[p gruss];                 // Hallo, Lübeck

Methodenaufrufe mit eckigen Klammern

Kern der Smalltalk-Syntax: [Empfaenger Nachricht]. Argumente werden mit Doppelpunkt getrennt.

NSString *s = [NSString stringWithFormat:@"%d plus %d", 2, 3];
NSUInteger len = [s length];
NSLog(@"%lu Zeichen", (unsigned long)len);   // 5 Zeichen

Collections: NSArray, NSDictionary, NSSet

NSArray *zahlen = @[@1, @2, @3];
for (NSNumber *n in zahlen) {
    NSLog(@"%@", n);
}
NSDictionary *stadt = @{@"Name": @"Lübeck", @"PLZ": @"23552"};
NSLog(@"%@", stadt[@"Name"]);          // Lübeck

Blöcke (Closures)

void (^verdoppeln)(int) = ^(int n) {
    NSLog(@"%d", n * 2);
};
verdoppeln(21);                        // 42

ARC und Speicherverwaltung

Mit ARC (Automatic Reference Counting) übernimmt der Compiler das retain/release-Management. strong hält das Objekt, weak referenziert ohne Besitz (vermeidet Zyklen bei Delegates).

__weak Person *schwacheRef = p;   // kein Besitz

Praxis-Tipps

  • Für neue Apple-Projekte ist Swift die empfohlene Sprache — Objective-C nur für Wartung und C-Interop.
  • Header (.h) deklarieren, Implementierung (.m) definiert — das trennt API und Details.
  • Methodennamen sind sprechend und selbstdokumentierend (stringWithFormat:, objectAtIndex:).

Verwandte Grundlagen: Swift-Befehle und C und C++.

YAML, TOML und JSON: Datenformate für Konfiguration und Datenaustausch

YAML, TOML und JSON sind die drei wichtigsten textbasierten Datenformate der Softwarewelt. JSON dominiert den Datenaustausch zwischen Diensten, YAML die Konfiguration moderner Tools (Docker, Kubernetes, CI/CD), TOML ist die Wahl für schlanke, gut lesbare Konfigurationsdateien (z.B. Cargo.toml, pyproject.toml).

JSON: Datenaustausch überall

JSON (JavaScript Object Notation) ist ein Untermenge der JavaScript-Syntax: Objekte in geschweiften Klammern, Arrays in eckigen, Strings in doppelten Anführungszeichen.

{
  "name": "Lübeck",
  "plz": 23552,
  "tags": ["hanse", "wissen"],
  "aktiv": true
}

YAML: Lesbar und einrückungsbasiert

YAML (YAML Ain't Markup Language) verzichtet auf Klammern und nutzt Einrückung. Es ist das Standardformat für Docker-Compose, Kubernetes-Manifeste und GitHub-Actions-Workflows.

name: Lübeck
plz: 23552
tags:
  - hanse
  - wissen
aktiv: true
server:
  host: web1
  port: 443

TOML: Schlank und typisiert

TOML (Tom's Obvious Minimal Language) kombiniert Klammern für Tabellen mit einfachen key = value-Zeilen — ideal für Konfigurationen mit vielen Einzelwerten.

name = "Lübeck"
plz = 23552
aktiv = true

[server]
host = "web1"
port = 443

Konvertieren zwischen den Formaten

Mit Python, jq oder yq lassen sich die Formate leicht umwandeln:

# JSON → YAML (yq)
yq -P '.' data.json > data.yaml

# YAML → JSON (yq)
yq -o=json '.' data.yaml > data.json

# JSON hübsch formatieren (jq)
jq '.' data.json

In Python verarbeiten

import json, yaml, tomllib

data = json.load(open("data.json"))        # JSON lesen
cfg  = yaml.safe_load(open("config.yaml")) # YAML lesen
toml = tomllib.load(open("pyproject.toml", "rb"))  # TOML lesen

Wann welches Format?

  • JSON: APIs, Webservices, Datenaustausch zwischen Programmen.
  • YAML: komplexe Konfiguration mit Hierarchie und Kommentaren (Kubernetes, Docker Compose, CI/CD).
  • TOML: einfache, flache Konfiguration mit klarer Typisierung (Rust Cargo, Python pyproject).
  • Kommentare: JSON kann keine, YAML und TOML können #-Kommentare.

Praxis-Tipps

  • YAML ist einbettungsempfindlich: Tabs sind verboten, konsistente Einrückung ist Pflicht.
  • Für maschinellen Austausch JSON verwenden — es ist am striktesten und am schnellsten zu parsen.
  • TOML ist die beste Wahl, wenn die Datei von Menschen gepflegt wird und flach bleibt.

Verwandte Grundlagen: Python-Befehle und Bash-Befehle.

df und du: Speicherplatz und Verzeichnisgrößen anzeigen

Mit df (disk free) und du (disk usage) behalten Sie den Speicherplatz Ihres Linux-Systems im Blick: df zeigt die Auslastung ganzer Dateisysteme, du die Größe einzelner Verzeichnisse.

df: Dateisysteme anzeigen

df -h

Zeigt alle eingehängten Dateisysteme in menschenlesbarer Form (-h = human readable, z.B. 12G statt 12582912). Ohne Option werden Blöcke zu 1 KiB ausgegeben.

  • df -h /home — nur das Dateisystem, das den Pfad enthält
  • df -i — Inodes statt Blöcke (wichtig bei voller Inode-Tabelle: „No space left on device", obwohl Platz da ist)
  • df -T — zeigt zusätzlich den Dateisystemtyp (ext4, xfs, tmpfs ...)

du: Verzeichnisgrößen ermitteln

du -sh /var/log

du -s fasst das Verzeichnis zusammen, -h liefert lesbare Größen. Ohne -s listet du jeden Unterordner einzeln auf.

  • du -sh * — Größe aller Einträge im aktuellen Verzeichnis
  • du -sh * | sort -h — aufsteigend sortierte Liste (größte Verzeichnisse unten)
  • du --max-depth=1 -h /var — nur eine Ebene tief, praktisch für die Suche nach Speicherfressern
  • du -sh ~/.cache — gezielt den Cache-Ordner prüfen, der oft unerwartet groß wird

Praxis-Tipp: df und du kombinieren

Wenn die Platte voll ist: zuerst df -h (welches Dateisystem?), dann du -sh /var/* 2>/dev/null | sort -h | tail -5, um den größten Verursacher zu finden. Mit du -x bleibt du innerhalb eines Dateisystems und zählt nicht doppelt eingehängte Pfade.

Verwandte Grundlagen: Dateisysteme erklärt und Prozesse mit ps, top und kill verwalten.

ssh, scp und rsync: Remote-Verbindungen und Datei-Transfer

ssh (Secure Shell) öffnet eine verschlüsselte Konsole auf einem entfernten Rechner, scp kopiert einzelne Dateien dorthin und rsync synchronisiert ganze Verzeichnisbäume. Alle drei nutzen dasselbe SSH-Protokoll und dieselbe Authentifizierung.

ssh: Kommandozeile auf dem Remote-Server

ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
  • ssh -p 2222 benutzer@host — anderen Port verwenden (Standard: 22)
  • ssh -i ~/.ssh/id_ed25519 benutzer@host — bestimmten Schlüssel nutzen
  • ssh-copy-id benutzer@host — den eigenen öffentlichen Schlüssel auf dem Server hinterlegen, danach Login ohne Passwort
  • ssh benutzer@host 'command' — Befehl direkt ausführen, ohne interaktive Shell

scp: Dateien kopieren

scp backup.tar.gz benutzer@host:/home/benutzer/

Kopiert die Datei auf den Server. In die andere Richtung: scp benutzer@host:/pfad/datei.txt .

  • scp -r ordner benutzer@host:/ziel/ — rekursiv ganze Verzeichnisse kopieren
  • scp -P 2222 datei benutzer@host:/ziel/ — großer Port-Buchstabe auf der Client-Seite (kleines -p wäre die Zeiterhaltung)

rsync: Synchronisieren mit Delta-Übertragung

rsync -avz /home/benutzer/www/ benutzer@host:/backup/www/

-a (archive) erhält Rechte, Zeiten und Links; -v ist ausführlich; -z komprimiert. rsync überträgt nur geänderte Teile — nach dem ersten Lauf ist eine Sicherung extrem schnell.

  • rsync -avz --delete quelle/ ziel/ — löscht am Ziel, was an der Quelle fehlt (exakte Spiegelung — Vorsicht!)
  • rsync -avzn quelle/ ziel/ — Trockenlauf (-n), zeigt ohne Änderung, was passieren würde
  • rsync -avz --progress quelle/ ziel/ — Fortschrittsanzeige bei großen Kopien

Wichtig: Ein abschließender Schrägstrich bei quelle/ bedeutet „Inhalt des Ordners", ohne Schrägstrich wird der Ordner selbst ins Ziel gelegt. Das ist die häufigste rsync-Falle.

Verwandte Grundlagen: Rechte vergeben mit chmod und chown und Archive mit tar und gzip.

  1. curl und wget: Daten aus dem Netz laden
  2. git-Befehle: Versionierung und Teamarbeit einfach erklärt
  3. docker-Befehle: Container einfach starten und verwalten
  4. npm und pip: Paketverwaltung für JavaScript und Python

Seite 41 von 46

  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz