1.VBScriptとは             [もくじへ] [トップページへ]

VBScriptは、Visual Basicをベースにして開発された言語で、HTML

に記述します。

HTMLは文章や図をどのように表示するかを指示することが主な目的

なので、一般のプログラム言語のようなプログラムの流れを制御する

ことはできません。HTMLでできないことを補うものとして、VBScriptや

JavaScriptがあります。

VBScriptの特徴は以下の通りです。

・For や If などの制御命令によるプログラムの効率化

・柔軟な配列管理

・日付/時刻関数、数値演算関数、文字列操作関数のサポート

・エラー処理のサポート

・onClick, onChange イベントなどによるイベント処理

・タイマー処理

・入出力ダイアログによるデータの入力と出力

・ActiveXコントロールの制御

 

用語

HTML・・・・・・・ブラウザで表示するファイルを作るためのテキスト編集
         用言語
JavaScript・・・Netscape社が開発したスクリプト言語。


2.HTMLについて             [もくじへ] [トップページへ]

VBScriptは、HTML内に記述する関係上、最低限のHTMLの知識が

必要です。初めての方のために、少し触れておきます。

HTMLのページ全体は <HTML> </HTML> タグで囲まれ、その中が

2つの部分に分れます。1つ目の <HEAD> </HEAD> タグに囲まれ

た部分では、このページ固有の情報(タイトル)などを記述します。次の

<BODY> </BODY> タグで囲まれた部分には、ページの内容そのもの

を記述します。

<HTML>

   <HEAD>

      <TITLE>例</TITLE>

   </HEAD>

   <BODY>

      本文

   </BODY>

</HTML>

また、ほとんどのタグは開始タグ < > と終了タグ </ > で囲みます。

 

例)

<CENTER> </CENTER> 囲まれた部分を中央に揃える

<PRE> </PRE>       囲まれた部分をそのまま表示

<P>             改行して、さらに一行あける。終了タグ

               </P> は、通常いらない

<BR>            改行する。終了タグ </BR> はいらない

 

など、いろいろなタグがありますが、HTMLのハンドブックを手元に置

いておき、必要なときに参照すればいいでしょう。これから、初めて出

てくるタグについては、なるべく説明を加えます。


3.VBScriptの記述方法        [もくじへ] [トップページへ]

VBScriptは、InternetExplorerで処理されますが、記述するのはメモ

帳のようなテキスト編集できるものであれば、何でもいいのです。

ここでは、メモ帳に次のプログラムを書いてみます。タグ(<>)や命令

は、半角で入力します。

 

プログラム例題1

<HTML>
<HEAD>
   <TITLE>例題1</TITLE>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
    document.write "こんにちは、田中です"
-->
</SCRIPT>
</BODY>

</HTML>

 

このプログラムを、メモ帳に書き込み(上記のプログラムをコピーし

て張り付けてもいいです。)、 test.html という名前をつけて保存し

てください。保存先は、どこでもかまいませんが、とりあえずデスクト

ップに保存します。

デスクトップに test.html というアイコンができるので、あとはそのア

イコンをダブルクリックすれば、実行できます。

 

            プログラムの記述手順

(1)メモ帳にプログラムを書く(タグや命令は半角で)
               ↓
(2)プログラム名(test.html)を付けてデスクトップに保存
               ↓
(3)デスクトップ上の test.html のアイコンをダブルクリックする(実行)

 

VBScriptはこのように、<SCRIPT> </SCRIPT> ブロックで囲みます。

さらに、<SCRIPT>タグに対応しないブラウザでは、ブロック内の文字

はそのまま文字として出力されますので、<!-- と --> で囲み、ブロッ

ク内の文字を出力しないようにします。

<!-- --> は、コメント(注釈)を入れるタグです。

 

<SCRIPT LANGUAGE="VBScript">
<!--

VBScript プログラム

-->
</SCRIPT>

 

もうひとつ、プログラムを入力してみましょう。

 

プログラム例題2

<HTML>
<HEAD>
   <TITLE>例題2</TITLE>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
    document.write "<H1>こんにちは、田中です</H1>"
-->
</SCRIPT>
</BODY>

</HTML>

" "の中にタグを書くことができます。

<H1> </H1> は囲まれた部分を大見出しにするタグです。


4.四則演算

4・1加減乗除               [もくじへ] [トップページへ]

===================================================

プログラム例題3

変数Aの値が8、Bの値が4であるとき、和A+B、差A−B、積A×B、

商A÷B、べき乗A^Bを求めよ。

=========================================================

<HTML>
<HEAD>
   <TITLE>例題3</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
        dim a
        dim b
        dim wa
        dim sa
        dim seki
        dim syo
        dim beki

        a = 8
        b = 4
        wa = a + b
        sa = a - b
        seki = a * b
        syo = a / b
        beki = a ^ b

        document.write "<br>"
        document.write "A=",a,"<br>"
        document.write "B=",b,"<br>"
        document.write "和=",wa,"<br>"
        document.write "差=",sa,"<br>"
        document.write "積=",seki,"<br>"
        document.write "商=",syo,"<br>"
        document.write "べき乗=",beki
-->
</SCRIPT>
</BODY>
</HTML>

 

dim a

変数 a の使用を宣言します。なくてもエラーにはなりませんが、

宣言してから使った方が安全です。また、VBScriptでは、変数

にデータ型はなく、数値でも文字列でも格納できます。

変数名はなるべく分かりやすい名前にしておくと便利です。変

数名は自由に付けることができますが、VBScriptの予約語

for とか if など)は使用できません。また、変数名は大文字

でも小文字でも同じです。 aA は同じ変数になります。

a = 8

8 を変数 a に代入することを表します。

wa = a + b

変数 a に格納されている数値と、変数 b に格納されている数

値の和を、変数 wa に代入します。

× ÷ 、べき乗は を用います。

document.write "<br>"

document はHTMLファイルというオブジェクトを示し、write

はそのあとに書かれた内容(引数)を、document オブジェク

トに出力するメソッドです。

オブジェクトとメソッドという専門用語がでてきましたが、これら

については、後で詳しく解説します。ここでは、画面に表示する

には、document.write ・・・ と書くものだと、覚えてください。

したがって、この文は改行タグ <BR> を画面に表示する、つま

り、改行しているだけです。

document.write "A=",a,"<br>"

ダブルクォテーション()に囲まれた文字 A= を表示し、続け

a の内容を表示した後、タグ <BR> で改行します。

このように、文字をそのまま表示するには、”表示させる文字”

のようにします。変数の内容を表示するには、変数をそのまま

記述します。


4・2演算の優先順位            [もくじへ] [トップページへ]

===================================================

プログラム例題4

X=5のときY=aX^3 + bX^2 + cX + d の値を求めよ。

ただし、a = 2, b = 3,  c = 4, d = 5 である。

=========================================================

<HTML>
<HEAD>
   <TITLE>例題4</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
        dim a, b, c, d
        dim X, Y1, Y2, Y3

        a = 2
        b = 3
        
c = 4
        
d = 5
        
X = 5

        
Y1 = a*X^3 + b*X^2 + c*X + d
        
Y2 = ((a*X + b)*X + c)*X + d
        
Y3 = a*X*X*X + b*X*X + c*X + d

        document.write "<br>"
        document.write "Y1=", Y1, "<BR>"
        document.write "Y2=", Y2, "<BR>"
        document.write "Y3=", Y3, "<BR>"
-->
</SCRIPT>
</BODY>
</HTML>

 

Y1 = a*X^3 + b*X^2 + c*X + d
Y2 = ((a*X + b)*X + c)*X + d
Y3 = a*X*X*X + b*X*X + c*X + d

Y = aX^3 + bX^2 + cX + d を、異なった文(ステートメント)で表して

みました。

実行結果は、次のようになります。

Y1=350
Y2=350
Y3=350

 

どの文も同じ結果を与えます。VBScriptの演算命令には、優先順位

がついています。 a*X^3 は、「X を3乗したものに a を掛ける」ことを

表し、「a*X を3乗する」ことではありません。( * )より( ^ ) を先に計

算します。また、c*X + d は、「cX + d」であり、「c(X + d)」ではあり

ません。( + )より( * ) が優先されます。

演算の優先順位をまとめると、

( )  →  関数  →  *,/  →  +,−

の順になります。

もう一つ、例を示します。

===================================================

プログラム例題5

A=5のとき,

の値を求めよ。

=========================================================

<HTML>
<HEAD>
   <TITLE>例題5</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
        dim A, P, Q, R, S

        
A = 5

        
P = A + A/A + A
        
Q = (A + A)/(A + A)
        
R = (A + A)/A + A
        
S = A + A/(A + A)

        document.write "<br>"
        document.write "P=", P, "<BR>"
        document.write "Q=", Q, "<BR>"
        document.write "R=", R, "<BR>"
        document.write "S=", S, "<BR>"

-->
</SCRIPT>
</BODY>
</HTML>

 

実行結果は、次のようになります。

P = 11
Q = 1
R = 7
S = 5.5

このように、分数式で、分母分子に式を含むときは、( )が必要です。

 


5.組み込み関数

5・1数値演算関数             [もくじへ] [トップページへ]

===================================================

プログラム例題6

変数Xの値が 1.345 であるとき、

を求めよ。

=========================================================

<HTML>
<HEAD>
   <TITLE>例題6</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
'  組み込み関数
        dim y1, y2, y3, y4, y5, y6
        dim x

'  代入(データ入力)
        
x = 1.345

'  計算
        
y1 = Abs(x)
        
y2 = Sin(x)
        y3 = Cos(x)
        
y4 = Tan(x)
        
y5 = Atn(x)
        
y6 = Sqr(x)

'  出力
        document.write "<br>"
        document.write "y1=",y1,"<br>"
        document.write "y2=",y2,"<br>"
        document.write "y3=",y3,"<br>"
        document.write "y4=",y4,"<br>"
        document.write "y5=",y5,"<br>"
        document.write "y6=",y6,"<br>"
-->
</SCRIPT>
</BODY>
</HTML>

 

実行結果は、次のようになります。

y1=1.345
y2=0.974616132437264
y3=0.223882545976745
y4=4.35324749495434
y5=0.931471804694676
y6=1.15974135047432

 

'  組み込み関数

注釈(コメント、リマーク)文です。プログラムが長くなると、また時間

が経つと、どこでどのような処理をするのか、作った本人でさえも解ら

なくなることがあります。そこで、このようにコメントを入れておくので

す。( ' )は半角で入力します。( ' )から後の文は、何を書いてもプロ

グラムとしては実行されません。

 y1 = Abs(x)

の絶対値を求め、y1 に代入します。

y2 = Sin(x)

sin x の値を y2 に代入します。 はラジアンです。x が度の単位の

場合、Pi=3.141592653 として、 y2 = Sin(x*Pi/180)

のように、度をラジアンに変換します。

数値演算によく使われる関数を、次に示します。

 

関数名          機能

Atn            アークタンジェント
Cos            コサイン
Sin             サイン
Tan            タンジェント
Exp            指数
Log            自然対数
Sqr            ルート
Abs            絶対値
Asc            アスキーコードに変換
Chr            文字に変換
Fix             整数部指定
Int             そのデータを超えない最大の整数

この中で、Fix Int の違いがはっきりしないので、それぞれ例で示

します。

Fix(1.5) = 1         Int(1.5) = 1
Fix(0)  = 0         Int(0)   = 0
Fix(-1.5) = -1        Int(-1.5) = -2

最後の負のデータのみが、異なります。Fix は単に整数部を取り出す

だけですが、Int はそのデータ(‐1.5)を超えない最大の整数ですから、

それより小さい整数(‐2)が得られます。

 


 

5・2関数計算例 1            [もくじへ] [トップページへ]

===================================================

プログラム例題7

角度 x = 12°20’30” を 12.2030 として与え、その正弦

(sin)の値を求めよ。

=========================================================

考え方

まず、x = 12.2030 から度分秒の値を取り出します。

  doo = Int(x) ・・・ 度

  fun = Int((x - doo)*100) ・・・ 分

  byo = ((x - doo)*100 - fun)*100 ・・・ 秒

となります。

さらに、その値をラジアンに変換します。

  r = (doo + fun/60 + byo/3600)*PI/180

rx をラジアンに変換した値が入ります。ただし、PIに円周率が代

入されているものとします。

そして、正弦を求めます。

  y = sin(r)

 

<HTML>
<HEAD>
   <TITLE>例題7</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
'  角度の変換
        dim doo, fun, byo
        dim x, r, y
        dim PI


'  代入(データ入力)
        
PI = 3.141592653589793
        
x = 12.2030

'  計算
        doo = Int(x)
        fun = Int((x - doo)*100)
        byo = ((x - doo)*100 - fun)*100

        r = (doo + fun/60 + byo/3600)*PI/180

        y = sin(r)

'  出力
        document.write "<br>"
        document.write "度=",doo,"<br>"
        document.write "分=",fun,"<br>"
        document.write "秒=",byo,"<br>"
        document.write "sin(",doo,"°",fun,"'",byo,"''",")","=",y,"<br>"
-->
</SCRIPT>
</BODY>
</HTML>

 

実行結果は、次のようになります。

度=12
分=20
秒=29.999999999994
sin(12°20'29.999999999994'')=0.213740857474156

 

document.write "sin(",doo,"°",fun,"'",byo,"''",")","=",y,"<br>"

文字をそのまま表示するには、ダブルクォーテーション()で囲みます。

変数をそのまま書くと、変数の内容が表示されます。また、いくつかの

データを続けて表示するには、コンマ()かアンパサイド(&)でつなぎ

ます。

このプログラムでは、秒の値がきれいに変換されていません。これは

コンピュータの変換誤差によるものです。変換誤差を完全になくするこ

とはできませんが、四捨五入によりある程度見やすくすることはできま

す。

次に、四捨五入のプログラムを作成します。


 

5・3関数計算例 2            [もくじへ] [トップページへ]

===================================================

プログラム例題8

プログラム例題7において、

秒=29.999999999994 を四捨五入により整数に丸めよ。

=========================================================

考え方

次のように関数 Int を使えば、簡単に四捨五入できます。

  r = Int(x + 0.5)

例えば、x = 2.3 を四捨五入すると 2 になりますが、この式で考えると

2.3 + 0.5 = 2.8   Int(2.8) = 2

となり、okです。

次に、x = 3.5 の場合、

3.5 + 0.5 = 4.0   Int(4.0) = 4

となり、四捨五入する桁の数値がちょうど 5 の場合もokです。

次に、x = 5.8 の場合どうでしょう。

5.8 + 0.5 = 6.3   Int(6.3) = 6

となり、この場合も四捨五入されています。

ついでに、小数第2位を四捨五入するには次のようにします。適当な

データを与えて、考えてみてください。

  r = Int(x*10 + 0.5)/10

 

<HTML>
<HEAD>
   <TITLE>例題8</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
<!--
'  角度の変換と四捨五入
        dim doo, fun, byo
        dim x, r, y
        dim PI


'  代入(データ入力)
        
PI = 3.141592653589793
        
x = 12.2030

'  計算
        doo = Int(x)
        fun = Int((x - doo)*100)
        byo = ((x - doo)*100 - fun)*100

'  byoの四捨五入 
       byo = Int(byo + 0.5)

        r = (doo + fun/60 + byo/3600)*PI/180

        y = Sin(r)

'  出力
        document.write "<br>"
        document.write "度=",doo,"<br>"
        document.write "分=",fun,"<br>"
        document.write "秒=",byo,"<br>"
        document.write "Sin(",doo,"°",fun,"'",byo,"''",")","=",y,"<br>"
-->
</SCRIPT>
</BODY>
</HTML>

 

実行結果は、次のようになります。

度=12
分=20
秒=30
Sin(12°20'30'')=0.213740857474156

 

今度はきれいに表示されました。

byo = Int(byo + 0.5)

右辺の byo を四捨五入し、左辺の byo に代入し直します。

 


[もくじへ] [トップページへ] [次ページへ]