dinsdag 10 juni 2014

VBA - Range - Iets wegschrijven in een cel

We gaan via visual basic een tekst plaatsen in de cel "A1". Hiervoor maken we gebruik van de visual basic editor.
  • Start Excel

We starten de visual basic editor met een sneltoets.
  • Druk op de toetsen ALT en functietoets F11
De visual basic editor verschijnt in een apart venster.

Normaal zijn er in de editor de palletten "Project" en "Eigenschappen" reeds aanwezig. In ons geval zijn deze uitgeschakeld. Via het menu "Beeld" kan je eventueel deze palletten terug laten verschijnen.

  • Klik op "Beeld" in de menubalk.
  • Klik op "Projectverkenner".
Het palet "Project" verschijnt linksboven in de editor. Dit palet toont al geopende bestanden. In ons geval het nieuw document "Map1" en het bestand "Personal".


We gaan excel en de editor naast elkaar plaatsen.
  • Klik met de rechtermuisknop onderaan de taakbalk van windows.
  • Klik op "Vensters naast elkaar weergeven".

Nu staan excel en de editor naast elkaar. De code voor visual basic wordt geplaatst in een module. Een module is standaard nog niet aanwezig. We maken eerst deze module.

  • Klik op "Invoegen" in de menubalk.
  • Klik op "Module".
In het palet "Project" verschijnt een folder "Module". En in deze folder is een document "Module1" verschenen.
Om de naam van dit document te wijzigen is het palet "Eigenschappen" nodig. In ons geval wordt dit palet nog niet getoond. We maken dit palet zichtbaar.

  • Klik op "Beeld" in de menubalk.
  • Klik op "Venster Eigenschappen".

Via dit palet kunnen we de naam van het document met code wijzigen. Programmeurs laten objecten beginnen met drie letters.

  • Klik in het vakje bij Name in het palet "Eigenschappen".
  • Typ "mdlInvullen".



In deze module kunnen we de code aanbrengen. De code begint met sub. Vervolgens komt de naam. Deze naam mag geen spaties bevatten en is uniek. Na intypen bevestig je dit met de enter-toets. Hierdoor wordt de code aangevuld.


  • Klik in het rechtse deel van de editor.
  • Typ sub gevolgd door een spatie.
  • Typ Invullen.
  • Druk op de enter-toets.

Visual basic applications werkt met objecten van excel. Als je het hoofdobject kent, komt na het typen van een punt "." meestal een keuzelijst tevoorschijn. Je kan dan uit deze lijst een eigenschap of actie kiezen. Een eigenschap wordt voorafgegaan door een pictogram waar een hand een blad vastneemt. Zo'n eigenschap wordt steeds gevolgd door een "="-teken. Een pictogram met groene kleur is een actie. Hiervoor is geen "="-teken vereist.

Om gegevens naar het werkblad van excel te brengen wordt bijvoorbeeld het object Range gebruikt. We gaan in cel A1 van het werkblad de tekst "Iets wegschrijven" laten verschijnen.
  • Typ Range("A1").

Er verschijnt nu een keuzelijst met alle eigenschappen voor het object Range. Om iets weg te schrijven in een cel wordt de eigenschap "Value" gebruikt. Indien je een v typt dan zie je alle eigenschappen en/of acties die met een v beginnen. Je kan dan de eigenschap die je nodig hebt in de code aanduiden en door erop dubbel te klikken verschijnt dit in de code. Je kan eveneens de tabulator-toets gebruiken nadat de eigenschap of actie is geselecteerd.

  • Dubbelklik op de eigenschap "Value".

De eigenschap "Value" heeft het pictogram "blad met hand". Dus hier is een "="-teken vereist. We wensen een tekst in de cel "A1" te laten verschijnen. Tekst wordt omsloten door de tekens dubbele quotes ".
  • Typ = "iets wegschrijven".

Je kan nu deze code testen. Hiervoor kan je bovenaan het pictogram met de groene pijl gebruiken. Plaats eerst de cursor in de eerste regel van de code.
  • Klik in de naam van het programma.
  • Klik op het pictogram met de groene pijl.

In cel A1 van het werkblad wordt de tekst "Iets wegschrijven" aangebracht. Merk op dat de cel "A1" hierdoor niet wordt geselecteerd. De oorspronkelijke cel is nog steeds actief.

We gaan dit document nu bewaren. Er is code in dit document aangebracht. Hierdoor wordt de extensie van het werkmap "xlsm".
  • Klik op het tabblad "Bestand" in het lint.
  • Klik op "Opslaan als".
  • Klik op "Computer".
  • Klik op "Bladeren".
Het dialoogvenster "opslaan als" verschijnt. Momenteel staat er nog Excel werkmap (*.xlsx) bij de keuzelijst "Opslaan als".
  • Klik op het pijltje bij de keuzelijst "Opslaan als".
  • Klik op Excel-werkmap met macro's (*.xlsm)
  • Typ "Invullen" in het tekstvak "Bestandsnaam".
  • Klik op de opdrachtknop "Opslaan".

Het is vervolgens de bedoeling dat op het werkblad een aanklikbaar element wordt aangebracht voor de gebruiker. We gebruiken bijvoorbeeld een tekening uit de autovormen.

  • Klik op het tabblad "Invoegen" van het lint.
  • Klik op het "Autovormen".
  • Klik op "Regelmatige vijfhoek.
  • Breng door slepen deze vorm aan op het werkblad.
  • Breng door slepen deze vorm aan op het werkblad.
Vervolgens koppelen we deze vorm met de code.
  • Klik met de rechtermuisknop op deze vorm.
  • Klik op de opdracht "Macro toewijzen...".

Het dialoogvenster "Macro toewijzen aan object" verschijnt. Hierin worden alle namen van de codes weergegeven.

  • Selecteer "Invullen".
  • Klik op "Ok".
We brengen vervolgens een tekst aan in de vorm.
  • Selecteer de vorm.
  • Typ "Invullen.

Vooraleer we dit testen, verwijderen we de reeds aangebracht tekst in cel A1.

  • Selecteer cel A1.
  • Duw op de Delete-toets.
  • Selecteer cel A4.
  • Klik op de vijfhoek.

De code wordt uitgevoerd en de tekst "Iets wegschrijven" verschijnt in de cel A1. Ook blijft de cel A4 geselecteerd.

  • Bewaar dit.