Variabler och olika datatyper

Här ska vi titta lite närmare på variabler och olika datatyper som du kommer att använda när du skriver program.

De flesta program använder variabler. I en variabel kan du lagra information medan du kör programmet.

En variabel kan innehålla ett antal tecken, den kallas då strängvariabel. En strängvariabel kan vara Efternamn. Du kan tilldela Efternamn ett värde till exempel Sjunnevik. I den programkod som du sedan skriver kan du använda variabeln för att skriva ut texten i Efternamn (Sjunnevik).

Du kan ändra variablernas värde genom att i programkoden tilldela dem ett annat värde.

Olika datatyper
En variabel sägs vara en viss datatyp och det beror på vad den innehåller.

Visual Basic har följande möjligheter:
Byte Variabel som innehåller heltalsvärden mellan 0 och 255.
Integer Variabel som innehåller heltalsvärden från - 322768 till + 32767
Long Variabel som innehåller heltalsvärden från
- 2 147 483 648 till 2 147 483 647.
Single Variabel som innehåller flyttalsvärden från - 3,4E+38 till 3,4E+38. Detta är mycket stora decimatal.
Double Variabel som innehåller flyttalsvärden från - 1,79E+308 till 1,79E+308. vilket är ännu större decimaltal än i Single.
String Variabel som innehåller en String (strängvariabel), det vill säga ett antal tecken eller siffror.
Currency Variabel som innehåller tal med fast decimalkomma används oftast till valutaberäkningar.
Variant Variabel som innehåller alla typer av data. Denna variabel är mer resurskrävande än andra variabler.
Boolean Variabel som kan anta värdet sant eller falskt.
Objekt Variabel som refererar till ett objekt.
Date Variabel som innehåller datum, från 1 Januari år 100 till 31 December 9999.

Hur ska du deklarera dina variabler i koden?
När du ska använda en variabel måste du tala om det för Visual Basic. Du måste tala om namnet på variabeln och vilken datatyp det är. I koden skriver du så här:
Dim Variabelnamnet As Datatyp

Obs! Variabelnamnet ska var det namn som du ska använda och datatypen ska ange vilken av ovanstående datatyper du vill använda. Detta kallas för att man deklarerar en variabel. Till exempel:
Dim strNamn As String
Dim sngSumma As Single
Dim lngRäknare As Long 
          

När du ska tilldela en strängvariabel värdet så ska det omges av citatecken.
strNamn = " Lasse"

Om du inte deklarerar en variabel får den automatiskt datatypen Variant. Om du använder en variabel av typen Variant i ett sammanhang där det krävs att variabeln är av en viss datatyp och variabeln inte innehåller data av rätt typ så kommer ett felmeddelande att visas.

Om variabeln förekommer på fler ställen i programmet måste du tänka på att stava namnet likadant överallt, annars kommer Visual Basic att tro att det finns flera olika variabler.

För att undvika problem med detta kan du låta Visual Basic kontrollera så att namnet är rätt stavat. Gör så här:

Visa kodfönstret för ditt formulär där du vill ha obligatorisk kontroll på variabeldeklarationerna

  1. Välj fliken General i listrutan Object

  2. Välj Deklarations i listrutan Procedure

  3. Skriv in "OptionExplicit" i början av deklarationsdelen

Du blir nu tvingad att deklarera variabler innan du använder dem, annars kommer Visual Basic att visa ett felmeddelande.

Om du vill att Visual Basic alltid ska kräva att du skriver in dina variabler så gör du så här:

  1. Öppna menyn Tools

  2. Välj sedan Options

  3. Välj fliken Editor

  4. Markera Require Variable Declaration

Nu kommer Visual Basic att alltid skriva "Option Explicit" i alla dina nya formulär.

För att en variabel ska vara giltig i ditt program måste den också deklareras på ett riktigt sätt. Åtkomligheten för programmet är viktig.
Det finns tre olika möjligheter att välja hur du vill att ditt program ska kunna nå dina variabler.

  • Lokala Variabler
  • Modulära Variabler
  • Globala Variabler

Lokal Variabel
En lokal variabel är bara tillgänglig i den proceduren du deklarerat den i. Det går inte att nå den utanför denna händelseprocedur.

Det är bara Command1_Click som kommer att nå din variabel.

Exempel:
Private Sub Command1_ Click()
Dim Ränta As Integer
End Sub


Modulär Variabel
En modulär variabel ska vara åtkomlig för alla procedurer och för att få variabeln Modulär så måste den deklareras i kodfönstret under avdelningen General. Gör så här:

  1. Öppna kodfönstret i ditt formulär

  2. Välj General i listrutan Object

  3. Välj sedan i Declarations listrutan Procedure

  4. Skriv sedan in i början av deklarationsdelen Dim Variabelnamn As Datatyp

Glöm inte att strängvariabler ska ha citattecken på båda sidor. En modulär variabel kan användas överallt i koden i det aktuella formuläret. Om du vill använda den modulära variabeln i andra formulär ska du skriva in följande:
Public variabelnamn as datatyp

Du använder ordet Publik i stället för Dim.
Publik intRänta as Integer

För att använda variabeln i ett annat formulär måste du använda följande text:
formulärnamn.variabelnamn

Här är formulärnamnet det formulär där variabeln är deklarerad.
Exempel:
Text1.Text=Form1,intRänta

Globala Variabler
Globala variabler skapar du för att använda i flera formulär och där du vill att den ska finnas åtkomlig för dessa. För att skapa en global variabel måste du använda en kodmudul. Kodmodulen är ett speciellt kodfönster där du kan skriva in dina procedurer och variabler.

Kodfönstret ser likadant ut som det vanliga kodfönstret, men listrutan i Object saknas, i stället finns där bara General. Gör så här för att skapa en global modul:

  1. Öppna menyn Project och välj Add Module

  2. Välj Module och klicka på Open

  3. Visa kodmodulen genom att klicka på kodmodulens namn i projektfönstret (Project Explorer)

  4. I listrutan Procedure i kodmodulen väljer du Declarations

  5. Skriv följande i kodmodulen Global Variabelnamn As Datatyp

Om du vill ta bort kodmodulen gör du så här:

  1. Öppna menyn Project

  2. Välj Remove och så ditt filnaman för kodmodulen

Med en tilldelningssats kan du ange värden för variabler. Om du till exempel skriver intLängd = 5 betyder det att du ger värdet 5 till varibeln intLängd.

Man ändrar också värdet hos kontroller eller formulär med tilldelningssatser.
Form1.left=0

Tilldelar du inte en variabel ett värde får den ett värde som beror på datatypen Integer = 0 och en strängvariabel blir tom.