dinsdag 7 mei 2013

Handige bronnen

Office algemeen

Officiële Microsoft Office website (http://office.microsoft.com)

Office development

Office client development: Office 2000, XP, 2003, 2007, 2010 en 2013.
Links naar naslag, trainingsmateriaal, Software Development Kits, tools en technische artikelen voor en over Office 2000, XP, 2003, 2007, 2010 en 2013 applicaties (clients).

Office 2010: Developer Map Poster
De Microsoft Office 2010 Developer Map helpt als overzicht bij de ontwikkeling van verschillende soorten Office gerelateerde toepassingen, services, data-access client / server-technologieën, on-premise servers, platform producten en technologieën en tools.

Introductie op Apps voor Office 2013 (Overview of apps for Office)
Opbouw en architectuur van Apps, requirements en gebruiksscenaro's van Apps voor Office 2013.

Apps bouwen voor Office 2013
Hoe bouw je Office 2013 apps met technieken als HTML5, JavaScript, CSS3, en XML. Uitleg over de App development lifecycle. Tips hoe te starten met het leren van App ontwerp, ontwikkeling en deployment.

Zelf aan de slag

Voorbeelden, labs, how-to's en ander materiaal waaneer je direct aan de slag kunt.

How to: Create your first content app
How to: Create your first task pane app
How to: Create your first mail app
How to: Release notes for apps for Office

Office demo en trial versies

Try Office 365 Home Premium

Download Microsoft Office Professional Plus 2013

Microsoft TechNet Evaluation Center
Links naar naslag, trainingsmateriaal, Software Development Kits, tools en technische artikelen voor en over Office 2000, XP, 2003, 2007, 2010 en 2013 applicaties (clients).

Op de hoogte blijven


RSS feed voor berichten over nieuwe downloads

maandag 6 mei 2013

Foutafhandeling (exception handling) in Visual Basic for Applications (VBA)


Afhandelen van fouten is een essentieel onderdeel van programma code. Fouten die niet worden afgehandeld zijn voor de eindgebruiker natuurlijk vervelend (het programma stopt met werken), maar bepalen en opruimen van eventuele schade wordt daarbij ook niet gedaan. Een gemiste kans dus.

VBA biedt hiervoor de een aantal voorzieningen die in deze blogpost worden beschreven.

Allereerst: afvangen van foutsituaties

Fouten in programmacode kunnen worden opgevangen door een error handler in de code te voegen. Hiervoor worden de volgende commando's gebruikt:

On Error Goto <ErrorHandlerLabel>: bij een foutsituatie, ga naar de code met label <ErrorHandlerLabel>
Resume (Next | <ErrorHandlerLabel>):
- Bij een foutsituatie, vervolg verwerking met de volgende code regel.
- Bij een foutsituatie, vervolg verwerking vanaf de code met label <ErrorHandlerLabel>.
On Error Goto 0: schakel afhandeling van de huidige foutsituatie uit.
Het error-object (Err)

Het error object bevat eigenschappen die een foutsituatie beschrijven en methods waarmee de foutsituatie. Dit object wordt automatisch gevuld wanneer zich een foutsituatie voordoet.

Voorbeeld:

Function VoorbeeldFunctie() As Integer

    Dim a As Integer
    
    On Error GoTo LabelErrorHandler

    ' ...code...
    
    a = 1 / 0 ' Hier gaat wat fout, je mag niet delen door 0 (als voorbeeld).

    VoorbeeldFunctie= 0

    On Error GoTo 0

LabelCleanup:

    ' ...code...

    Exit Function

LabelErrorHandler:

    MsgBox ("Error (" & Err.Number & ") in ReportRun_Prepare(): " & Err.Description)

    Resume LabelCleanup

End Function


Het error (Err) object wordt, binnen een error handling routine, na Exit Sub, na Exit Function, Exit Property, of Resume Next automatisch gereset (0). Dit kan ook expliciet gebeuren door Err.Clear te gebruiken, wat ook werkt buiten error handling routines.

Foutcodes

VBA gebruikt standaard nummers voor fouten. Daarnaast kunnen eigen foutcodes worden gebruikt. Gebruik hiervoor de foutcodes van 513 t/m 65535.

Zelfgedefinieerde fouten kunnen worden geactiveerd (raised) door het raise commando, bijvoorbeeld: Err.Raise(513).

Tips

Naast goede foutafhandeling is het van belang om altijd (aan het begin van iedere module) Option Explicit in te voegen. Hiermee wordt afgedwongen dat variabelen, voor gebruik, ook expliciet worden gedeclareerd. Veel fouten zijn namelijk te wijten aan het niet declareren van variabelen, waarbij VBA deze automatisch aanmaakt wanneer er voor het eerst een waarde aan toe wordt gekend. Dit zorgt echter voor onduidelijkheden en een grotere kans of fouten waarvan de oorzaak lastiger is te vinden.