Python-Fu: Das Kreuz mit den Umlauten und Sonderzeichen

Beim Schreiben des Codes meldete mir GIMP immer wieder den Fehler, dass das Plugin abgestürzt sei. Einzige Änderung war Ergänzung eines Kommentars mit einem Umlaut. Sobald der Umlaut ersetzt wurde, funktionierte das Skript wieder.

Die Lösung fand sich bei der Recherche im Netz in einem Artikel aus dem Jahr 2006. Dieser wies darauf hin, dass eine Schriftcodierung erforderlich ist. So sollte im Code die Schriftcodierung hinterlegt sein und mit dem benutzten Editor identisch sein.

Der Editor speichert standardmäßig die Dateien in UTF-8 ab. Die folgende Zeile habe ich in den Code in die 2. Zeile eingefügt, danach waren Sonderzeichen und Umlaute kein Problem mehr.

# -*- coding: utf-8 -*-

Nun, zum Abschluss noch der Link auf den Artikel „Von Python, Umlauten, Unicode und Encodings„.

Python-Fu: Variablen

Zu Beginn widmen wir uns den Variablen. Variablen sind dazu da, verschiedene Arten von Werten aufzunehmen und dynamisch Berechnungen und Funktionen auszuführen. Weitere Vorteile sind, dass Werte von Eingabefeldern übernommen werden können, die Lesbarkeit gesteigert und eine zentrale „Verwaltung“ von Variablen und ihren Werten ermöglicht wird. Es ist halt einfacher, für die Kreiszahl π (Pi) eine Variable zu definieren und zu verwenden, als immer wieder im Code „3.141592653589793238462643“ zu wiederholen.

Weiterlesen

Python-Fu – Skripte in GIMP

GIMP beinhaltet zwei Skriptsprachen, mit denen sich Abläufe automatisieren lassen. Zum einen ist es das mittlerweile in die Jahre gekommene Script-Fu, was aufgrund der Synatx auch als Klammersprache bezeichnet wird und auf der Programmiersprache Scheme aufbaut, und das jüngere Python-Fu, was an dem gleichnamigen Python angelehnt ist.

Leider finde ich im Internet keine guten, deutschsprachigen Dokumentationen zu Python-Fu, so dass ich hier in dem Notizblog meine Erkenntnisse hinterlege.

Weiterlesen

PowerShell – Einführung

Bei der PowerShell handelt es sich um eine leistungsfähige Skriptsprache von MicroSoft, die starke Möglichkeiten der Automatisierung in der Systemadministration und im Zusammenspiel mit den Office-Produkten bietet. Die Powershell ist für Microsoft Windows, MacOS und Linux verfügbar.

Diese Reihe legt den Schwerpunkt auf die die Office-Komponenten, da diese in mein aktuelles Tätigkeitsfeld hineinfallen.

VBA: Access-Statuszeile beschreiben

Die Access-Statuszeile kann über folgenden Befehl als Informationsleiste verwendet werden.

Sub Statusnachricht(Nachricht)
    Dim Statusnachricht As Variant
    
    Select Case Nachricht
    Case Is = "0"
        Statusnachricht = SysCmd(acSysCmdClearStatus)
    Case Else
        Statusnachricht = SysCmd(acSysCmdSetStatus, Nachricht)
    End Select
End Sub

Erklärungen zum Script

  • Zeile 2: Deklaration der Variablen „Statusnachricht“ als Variant
  • Zeile 4: Filtere die übergebenen Parameter
  • Zeile 5 + 6: Wenn der Wert „0“ ist, dann lösche die Anzeige
  • Zeile 7 + 8: ansonsten zeige die Nachricht an
  • Zeile 9: Schließen die Schleife der Selektion

Der Aufruf der Sub erfolgt nach folgendem Schema:

call Statusnachricht("Zeige diesen Text in der Statuszeile von Access an.")
call Statusnachricht("0")   ' Lösche den in der Statuszeile angezeigten Text.

VBA: Löschen eines Excel-Tabellenblattes aus Access heraus

Der nachfolgende VBA-Code löscht ein Excel-Tabellenblatt aus einer Access-Instanz heraus:

Sub deleteTabelle(Tabellenname, xl_book)

For Each Sheet In xl_book.WorkSheets
    If Sheet.Name = Tabellenname Then
        xl_book.Application.DisplayAlerts = False
        xl_book.WorkSheets(Tabellenname).Delete
        xl_book.Application.DisplayAlerts = True
    End If
Next
End Sub

Erläuterungen zum Code:

  • Zeile 3: Frage in einer Schleife sämtliche Tabellenblätter ab, ob das übergebene Tabellenblatt vorhanden ist.
  • Zeile 4: Schalte die Warnmeldungen aus
  • Zeile 5: Lösche das gewünschte Tabellenblatt
  • Zeile 6: Schalte die Warnmeldungen ein
  • Zeile 7: Beende die If-Schleife aus Zeile 3
  • Zeile 8: Beende die For-Schleife

VBA: Erstellen einer Mail mit Anhang

Der  nachfolgende Code ermöglicht es, eine Mail über VBA-Code aus Access zu erstellen:

Sub Mailversand(str_empfaenger, str_betreff, str_Dateiname, str_Vorname, str_Nachname, str_Telefon, str_Mail)
' Diese SUB erstellt eine Mail mit Anhang
Dim OL_App As Object
Set OL_App = CreateObject("Outlook.Application")

With OL_App.CreateItem(0)
   .BodyFormat = 3
   .GetInspector.Display
   .To = str_empfaenger
   .Subject = str_betreff
   .htmlBody = "Hallo,<br><br>im Anhang findest Du die im Betreff genannte Datei.<br><br>Mit freundlichen Grüßen<br><br>" & str_Vorname & " " & str_Nachname & "<br>" & str_Telefon & "<br>" & str_Mail
   .Attachments.Add str_Dateiname
End With

End Sub

Die Routine erstellt eine Mail mit Anhang, die aus einem übergeordneten Modul aufgerufen wird. Nach Erstellung wird die Mail in Outlook aufgerufen, bevor diese versendet wird.

Weiterlesen