MLHA - PC - Software - Programmering - Script - VBScript
>Kommandoer >Funktioner >Objekter
gox.gif (837 bytes)Visual Basic
gox.gif (837 bytes)Windows Script: WSH
gox.gif (837 bytes)Webdesign: VBScript, ASP

>Microsoft Vbscript Reference
>DevGuru Vbscript Reference

| VBscript kode-modeller |

- www.microsoft.com/vbscript/
- Microsoft Windows Script Technologies: VBScript
msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vtoriVBScript.asp
mikecaldwell.com/VBINDEX/vbscript_list.html
Carl & Gary's VBScript
DevGuru VBScript Guide
Dx21 VBscript Reference Guide
Teach Yourself VBscript in 21 Days - Online Book
www.docs.rinet.ru:8083/VB/index.htm : VBscript Unleashed (e-book)
VBscript Language Reference
www.dx21.com/SCRIPTING/VBSCRIPT/INDEX.ASP
www.sloppycode.net/vbscript/
http://activedeveloper.dk/iishelp/vbscript/html-vss/vbsTOC.htm
http://asp.database.net.tw/teach/help/iishelp/vbscript/vbsdoc2/vbstoc.htm

VBscript kan benyttes til
- Windows scripting (i stedet for BAT-filer) >WSH
- Web scripting, både i HTML-kode og i ASP-kode

 

Til HTML-kode vil man normalt benytte javascript, som kan bruges i både Internet Explorer og i Netscape (VBscript kan kun benyttes i IE). Desuden er javascript standard-scriptsprog i IE - sammenlign følgende (klik på: :):

<font face="Wingdings" onclick="alert('javascript')">:</font>
:
<font face="Wingdings" onclick="vbscript:alert('vbscript')">:</font>
<font face="Wingdings" onclick="vbscript:msgbox 'vbscript'">:</font>
:
:

 

Bemærk, at både javascript og vbscript kan benytte funktionen alert(), men da javascript er standarden, er "alert()" det samme som  "javascript:alert()". Vbscript skal derimod altid angives med "vbscript: osv".

Desuden er javascript ofte lettere at bruge
- fx vil man ofte gerne benytte et 'link', så man kan se, at her er noget aktivt. Med javascript kan man benytte denne kode:

<a href="javascript:alert('klik her:')">
  <font face="Wingdings">:</font>
</a>
:

 

Koden efter href= skal altid returnere noget, som kan tolkes som et 'dokument'.
I JavaScript er alert() en funktion, som returnerer værdien NULL - dette bliver tolket som 'intet dokument' - dvs vi undgår at href= åbner et nyt dokument.

Hvis man forsøger det samme med VBscript, vil man se, at det ikke virker -  fordi alert() i VBscript er en subrutine, som ikke returnerer noget som helst til href= :

<a href="vbscript:alert('klik her:')">
  <font face="Wingdings">:</font>
</a>
: - Denne kode virker ikke -

 

Men så kunne man jo blot erstatte alert() med VBscript-funktionen msgbox(), men det virker heller ikke, fordi  msgbox() altid returnerer en talværdi (ikke NULL) - dvs href= åbner et nyt dokument, som indeholder denne talværdi.

Men må derfor omskrive vbscript-koden, så den benytter en selvstændig funktion, som ikke får defineret en returværdi - derved returnerer funktionen en NULL-værdi til href=:

<a href="vbscript:klik()">
  <font face="Wingdings">:</font>
</a>
<script language="vbscript">
  Function klik()
    alert("klik her:")
  End Function
</script>
:

 

VBScript kode-modeller:
downx.gif (830 bytes)TopDowndownx.gif (830 bytes)ProcedureOrienteretdownx.gif (830 bytes)ObjektOrienteret

Script-koden kan organiseres efter forskellige modeller, som her illustreres ved et program, som udregner og viser antallet af dage til jul. Alle tre modeller giver samme resultat, som kan ses her: :

 

VBScript - modeller - TopDown

jul = cdate("24-12-" & year(date))
dage = datediff("d", date, jul)
if dage > 0 then
  msgbox "der er " & dage & " til jul"
elseif dage = 0 then
  msgbox "det er jul"
else
  msgbox "det var jul for " & -dage & " dage siden"
end if

 

VBScript - modeller - ProcedureOrienteret

Det er ligegyldigt om procedurer og funktioner står før eller efter hoved-koden

function DageTilJul(Aar)
  jul = cdate("24-12-" & Aar)
  DageTilJul = datediff("d", date, jul)
end function

dage = DageTilJul(year(date))
if dage > 0 then
  msgbox "der er " & dage & " til jul"
elseif dage = 0 then
  msgbox "det er jul"
else
  msgbox "det var jul for " & -dage & " dage siden"
end if

 

VBScript - modeller - ObjektOrienteret

class Aar

  private pAar

  private sub class_initialize()
    pAar = year(date)
  end sub

  public function DageTilJul()
    jul = cdate("24-12-" & pAar)
    DageTilJul = datediff("d", date, jul)
  end function

end class

set obj = new Aar
dage = obj.DageTilJul
if dage > 0 then
  msgbox "der er " & dage & " til jul"
elseif dage = 0 then
  msgbox "det er jul"
else
  msgbox "det var jul for " & -dage & " dage siden"
end if