Category: Allgemein

Excel VBA Makros in Google Spreadsheets

Der Eine oder Andere wird sich fragen, wozu man sich überhaupt noch mit Makros beschäftigen sollte, schließlich ist das Alles von Microsoft und im Zeitalter der online Office Suiten eh nicht mehr zu gebrauchen. Google scheint das ein bisschen anders zu sehen. Unter http://www.googlewatchblog.de/2008/05/28/google-docs-demnaechst-mit-macros/ gibt es Beobachtungen die darauf hindeuten, das es man bald Makros in Google Spreadsheets verwenden kann. Die Schätzung von drei Monaten in dem Artikel ist momentan natürlich ein bisschen überholt und bisher geht es auch nicht – zumindestens in mit meinen Google Documents.

Trotz allem, glaube ich, wird es früher oder später möglich sein, das in Google Spreadsheets Makros zu benutzen, weil viele Unternehmen so spezielle Anforderungen haben, die sich mit den normalen Excel Funktionen nicht abbilden lassen.

Excel VBA Makro 2003 – Hello World

Als ich mit der VBA Makro Programmierung in Excel angefangen habe, war der Tipp, man sollte einfach ein Makro aufzeichnen und schauen wie es funktioniert und entsprechend abändern. Diese Herangehensweise hat mich nicht so recht befriedigt. Von daher hier mal ein anderer Versuch:

Zuerst basteln wir uns einen Button in unser Excel – Sheet. Dazu gehen wir übers Menü Ansicht -> Symbolleisten -> Formular und blenden die entsprechende Symbolleiste ein. In der erscheinenden Symbolleisten ist das Element Schaltfläche zu wählen.

Achtung: ein ähnlicher Button befindet sich auch in der Steuerelemente Toolbox. Dieser hat jedoch nicht das gleiche Verhalten wie eine Formular-Schaltfläche.

Nachdem wir die Schaltfläche auf dem Sheet platziert haben, öffnet sich das Fenster Marko zuweisen. Die angezeigte Liste sollte noch komplett leer sein. Es könnten jedoch auch Makros aus anderen Sheets angezeigt werden.

Beim Klicken auf Neu sollte sich der Editor öffnen und der Cursor bereits an der korrekten Stelle blinken.

Anmerkung: Eine Sub ist ähnlich wie eine Funktion mit dem Unterschied, das eine Funktion einen Rückgabewert haben kann. Abgesehen davon ist mir bisher kein weiterer Unterschied bekannt.

In die Sub “Schaltfläche1_BeiKlick()” tippen wir folgendes ein:
[php]
MsgBox “Hello World”
[/php]

Der gesamte Code sollte dann so ausschauen:

[php]
Sub Schaltfläche1_BeiKlick()
MsgBox “Hello World”
End Sub
[/php]

Speichern das Ganze und gehen zurück zu unserem Excel Sheet. Dort können wir die Formular Symbolleiste schließen und kurz ins Leere klicken, damit unser Button den Focus verliert. Anschließend auf den Button klicken. Folgende Meldung sollte erscheinen:

Noch zwei Anmerkungen:
1. Wie man sieht, kommt VBA komplett ohne Semikolons aus. Sobald man welche setzen will, erscheint sogar eine Fehlermeldung.

2. In diesem Beispiel habe ich Umlaute wie ä, ö, ü im Subnamen unberücksichtigt gelassen, weil das Beispiel so einfach wie möglich sein, sollte. Generell sollte man solche Sonderzeichen jedoch immer entfernen.

Löchriger Googlemail Spam Filter – Dr. Sabrina XY

Seit ein paar Tagen landen ein bis zwei Mails in meinem Posteingang, die offensichtlich, zumindestens für mich, Spam sind. Ob es am Dr. – Titel liegt, das die Mails vertrauenswürdiger erscheinen?

Interessanterweise sind in den Mails, in manchen Wörter die o’s durch eine 0 ersetzt:
sollte = s0llte
schon = sch0n
Monat = M0nat
problemlos = pr0blemlos

Der SPF Eintrag ist neutral – “is neither permitted nor denied”

Vor ein paar Tagen, hat mir eine Internet Agentur eine Mail geschickt. Diese Mail landete sofort im Spam Ordner und ich dachte damals es würde am neutralen SPF Eintrag liegen. Wenn ich die Mails jetzt vergleiche, muß die höhere Vertrauenswürdigkeit gegenüber Dr. Sabrina XY daran liegen, das es reine Text Mails sind.

Die Agentur hatte ihre Mail über Outlook im HTML Format verschickt, die Standardeinstellung von Outlook. Obwohl die Spam Mails aus Brasilien bzw. Russland kam, scheint für den Google Spam Filter das entscheidene zu sein, ob es Text oder HTML ist.

Abgesehen von den Formatierungsmöglichkeiten des Textes, bieten HTML Mails die Möglichkeit URLs zu verschleiern. Der Linktext muss nicht der URL entsprechen, auf die verlinkt wird.

Google Mail erkennt mittlerweile URLs in Text Mails und verlinkt sie entsprechend. Dabei werden so gut wie alle möglichen URL Varianten verlinkt:

[php]
http://www.google.de
www.google.de
www2.google.de
google.de
google.de.jo
ghjkjh.de
[/php]

Von daher könnte die Agentur ihre Mails auch als Text verschicken und die URLs im Footer würden trotzdem verlinkt werden. Nicht nur GoogleMail hat diese Probleme. Selbst wenn man mittlerweile von einem T-Online eMail Konto zu einem anderen T-Online Konto eMails verschickt, werden sie teilweise schon als Spam klassifziert.

Microsoft Standardeinstellung in Outlook, das Mails im HTML Format verschickt werden, macht es Spam Filtern immer schwieriger zwischen Gut und Böse zu unterscheiden. Wie viele “gute” Mails dabei auf der Strecke bleiben, kann wahrscheinlich niemand abschätzen.

Wenn man also will, das Mails ankommen, sollte man sie als Plain Text verschicken.

Typo3 UTF8 Test

Nachdem ich gestern darauf eingegangen bin, wie man die Typo3 Webseite auf UTF8 umstellt, werden sich vielleicht manche fragen, wie man es denn wirklich testen kann, ob die Typo3 Webseite in UTF8 läuft.

Sollte man die Umstellung bei einem bestehenden Projekt machen, mit viel Text, wird man den Effekt gleich sehen. Die Umlaute sollte nicht mehr lesbar sein. Daher empfiehlt es sich, wie gesagt, so etwas am Anfang zu machen.

Um zu kontrollieren ob auch wirklich alles auf Typo3 läuft empfiehlt es sich folgende Vorgehensweise.
1. Anlegen eines Templates ‘template.html’ mit folgendem beispielhaftem Inhalt:
[PHP]

Hällö Wörld

###INHALT###


[/PHP]

Anschließend folgendes TypoScript im TypoScript-Browser eintragen:
[PHP]
page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8

page = PAGE
page.config.admPanel = 1

page.10 = TEXT
page.10.value = HELLÖ WÖRLD!

page.typeNum = 0
page.20 = TEMPLATE
page.20 {
template = FILE
template.file = fileadmin/template.html
workOnSubpart = DOKUMENT
marks {

INHALT < styles.content.get } } [/PHP] Außerdem auf der entsprechenden Seite ein Inhaltselement in der mittleren Spalte anlegen mit Text, der ebenfalls Umlaute enthalten sollte. Anschließend sich die Ausgabe auf der Webseite anschauen. Sollten hier alle Umlaute richtig dargestellt werden, kann man zu 50% davon ausgehen das die Typo3 Konfiguration mit UTF8 stimmt. Um 100% sicher sein zu können sollte man sich das noch in der Datenbank anschauen. Das angelegte Inhaltselement findet man in tt_content, das eingetragene TypoScript findet man in sys_template. Auch hier müssen die Umlaute, bei der Auswahl des richtigen Datensatzes, lesbar angezeigt werden. Sollte man sein Inhaltselement gar nicht im Frontend sehen, hat man die Includes im Template - content (default) vergessen. [random_content group_id="211" num_posts="1"]

VBA Excel Makros für Aufsteiger, Umsteiger, Durchsteiger

Dies soll eine kleine Artikelserie über VBA Makros in Excel werden. Je nachdem wie viel Zeit ich die nächsten Tage, Wochen, Monate oder Jahre habe, ist die Serie früher oder später zu Ende. Bevor wir jedoch mit den praktischen Tipps beginnen, etwas Grundsätzliches zu und über Excel VBA Makros und dieser Serie.

1. Warum eine Serie über Excel VBA Makros? Im Internet gibt es doch schon alles was man braucht!
Diese Serie ist nicht um Excel VBA Makros vollständig zu erlernen. Sie soll Menschen die bereits andere Sprachen können, wie z.B.: Java, PHP oder C++ helfen sich schnell in VBA Makros wohl zu fühlen.

Außerdem möchte ich an dieser Stelle darauf hinweisen, auf Makros zu verzichten. Unabhängig davon ob in Excel oder sonst irgendwo. Die Gründe dafür sind folgende:

1. Ein Sicherheitsrisiko
2. Kompatibilitätsprobleme zwischen verschiedenen Office Versionen
3. Usability unfreundlich
4. Geschwindigkeitseinbußen

Bevor man also mit der Makroprogrammierung beginnt, sollte man erstmal schauen ob es nicht auch einfach mit den Excel Funktionen lösen kann. In meinem Fall war es offensichtlich, das es mit reinen Excel Funktionen nicht möglich ist.

Die Aufgabenstellung war es, ein Excel Sheet zu basteln, welches automatisiert Zellen aus anderen Excel Sheets ausliest, interpretiert und ein neues Sheet mit den ausgelesenen Werten erstellt.

Noch zur letzten Frage: Warum erscheint diese Serie überhaupt im BugBlog?
Ganz einfach weil man bei der VBA Programmierung immer das Gefühl hat, man steht vor einem Bug der sich dann doch als Feature entpuppt.