|
||||
|
|
2章 ASPの初歩
|
|
|
ASP はどのように書くか
第1章でとりあえず作ってみたスクリプトをもうちょっと詳しく見てみましょう。
<%@ LANGUAGE = VBSCRIPT %> <html> <body> <%Response.Write("Hello World")%> </body> </html> 1. Webサーバに対して VBSCRIPTを使用すると明示的に宣言します。JScriptを使用する場合は VBSCRIPTの代わりに JScriptと宣言します。設定にもよりますが、VBScriptを使用する場合には ほとんどの場合この宣言は省略可能です。また、この宣言は ASPファイルで一回しか使用できません。複数記述してもエラーとなってしまいます。
<%@ LANGUAGE = VBSCRIPT %> 2. この <%…%> で囲まれている部分が ASPの命令を記述する部分です。この部分に記述されているスクリプトが Webサーバ側で処理して結果を出力したりします。それ以外の場所は通常の html同様にブラウザに出力されます。
<%Response.Write("Hello World")%> <%…%> は次のように複数行にまたがって記述する事も出来ます。
<% Response.Write("Hello World") %> わざわざ一つの文字列を出力するのに Response.Write("") と記述しなくてはならないのはちょっと面倒です。 こんな時は次のように省略した記述をする事が出来ます。動作は全く同じです。
<%="Hello World"%>
また <% 〜 %> の記述はスクリプト内で複数回記述する事が出来ます。
<%@ LANGUAGE = VBSCRIPT %> <html> <body> コメント1 <% Response.Write("Hello World 1") %> コメント1 <% Response.Write("Hello World 2") %> </body> </html> ASP の全般的な文法
スクリプトは全て半角文字で記述します。全角文字を書いてしまうとエラーになってしまいます。 ただし文字列や後述するコメントでしたら全角文字を使用しても問題はありません。
スクリプトは ASPファイルの先頭から末尾に向けて順次実行されます。 ただしプロシージャ/インクルードファイル(後述)がある場合はこれに当てはまりません。 大文字と小文字
Perl や JavaScript では大文字と小文字は区別して扱われました。しかし ASP では大文字と小文字の区別を行いません。つまり Write というメソッドは write と記述してもかまいません。
Response.Write("Hello World!!") response.write("Hello World!!") '// 上と同じとして扱われる ASPのコメント
ASPでのコメントはシングルコーテーション [ ' ] の後に記述します。 同じ行のシングルコーテーション以降はコメントとして扱われ、スクリプトとして解釈はされません。 次の行になればまたスクリプト行として解釈されます。
Response.Write("Hello World!!") ' ここからコメント行末まではコメント文です。 ここはもうコメント文ではありません!!エラーになります。 ' この行はすべてコメントになります!! 文字列
文字列はダブルコーテーション [ " ] で囲んで記述します。 上記のサンプルスクリプトで "Helo World" とありますが、この部分が文字列になります。 なので全角文字を使用してもエラーになりません。 ダブルコーテーションで囲んだ箇所が文字列となると言う事は、ダブルコーテーションを出力したい場合はどうすればよいのでしょう? ダブルコーテーション自体を表わしたい場合は以下のような記述で表現できます。
"""" 'ダブルコーテーションを表わす。 Chr(34) 'Chr関数をつかってダブルコーテーションを表わす。 変数
プログラムを初めて作成する方にはあまり馴染みがないかもしれませんが。今使用しているデータを後で使用したい!!と言うケースは多々あることだと思います。これは当然のことですがこれにはデータを保存しておく箱が必要です。このデータを保存する箱の事をプログラムの世界では [ 変数 ] と呼びます。VBScriptでもこの変数を使用してデータを保持します。
Visual Basic や VBA では文字列型 ( String ) や数値型 ( Integer ) といった色々な変数型が用意されていますが、VBScriptで扱える変数の型はバリアント型 の一つのみです。バリアント型というのは数値や文字列全てを扱える特殊なデータ型です。
'文字列を変数に代入 msg1 = "文字列" '数値を変数に代入 msg2 = 12345 '変数を参照して"文字列"と出力 Response.Write(msg1) '変数を参照して12345と出力 Response.Write(msg2) 変数の宣言
変数を明示的に宣言する場合は次のように Dim 句を使用します。
Dim strMsg '変数strMsgを宣言します。
ただし VBScriptでは Perlや JavaScriptのように宣言と同時に初期化する事は出来ません。以下のような記述をしてしまうと VBScriptではエラーになってしまいますので注意して下さい。
Dim strMsg = "エラーメッセージ" '宣言と初期化は出来ないためエラーとなる
変数名の決まり
使用する変数名に特に強制的な決まりはなく、プログラマが任意に設定できますが、次のような制約がありそれに当てはまる変数名を付けることは出来ません。 255文字以内の半角文字
名前の先頭に数字や記号は使用できない
予約語は使用できない
宣言の強制
VBScriptでは変数の宣言は必須ではありません。 VBScript では、宣言無しで変数を使用してもデフォルトでは新しい変数が新しい変数が使用される度に新たに領域を確保して以後その変数が使用できるようになります。
しかし、そのようにいきなり出てきた変数が利用されているとスクリプトをメンテナンスする際とても苦労してしまう事になります。変数を使用するときに、変数のスペルを一文字間違えてしまってもそれは別の新しい変数として扱われてしまい VBScriptでは特にエラー表示はされず、この間違えを探すのにとても労力を必要としてしまうでしょう。 ただ、宣言をしていないと変数を使用できなくするようにする事も可能です。変数の宣言を強制させるために次のようなステートメントをスクリプトの先頭に記述します。 システム開発の現場では大抵変数の宣言を強制にしています。
Option Explicit
このステートメントをスクリプトの先頭に追加しておく事で、宣言をせずに使用された変数は実行時にエラーとする事が出来ます(下記参照)。VBScriptでスクリプトを書く場合はこの宣言をつけておく事をお勧めします。 [ Option Explicitを使用しない ]
Dim msg msg = "Hello World" Response.Write(mst) '変数 mst と解釈されなにも表示されない [ Option Explicitを使用する ]
Option Explicit Dim msg msg = "Hello World" Response.Write(mst) 'mst は宣言されていないため実行時エラーとなる 定数
変数はプログラムの途中で何回でも値を代入して変更する事が出来てしまいます。ただ固定で変更したくない値をというのも当然出てきます。この場合に使用するのがこれから出てくる [ 定数 ] です。 定数とは宣言時に代入 ( 初期化 ) した後は参照しかする事ができない特殊な変数を指します。 変わる事が無い、又は決まっている値を人間の理解しやすい名称に設定しなおしたりする場合に使用されます。
※よく本などで解説されている例として、円周率(π)を使用する時にこの定数を利用しています。 定数の使用例
'/ 定数の宣言&初期化 Const PAI = 3.14 '/ 円の面積を求める Response.Write(( 10 * 10 ) * PAI ) 定数の宣言は [ Const ] ステートメントを使用します。サンプルでは PAIという名前の定数に初期値で π(3.14)を設定しています。初期化以外でこの定数に値を代入しようとしても実行時にエラーとなり代入できません。 最近数学(?)の教科書では円周率の値を 3.14 から 3 に変更すると言う話を聞きましが、こういった場合に定数を使用していれば初期化の1部分の修正するだけで済みます。しかし、定数を使用していなければ 3.14 となっている部分を全部修正しなければいけなくなってしまいます 配列
配列に関する詳細については [ 6章 ] を見てください、ここでの説明はざっと流す程度です。
配列とは複数の変数の集合を表わします。 宣言時に使用する要素数を指定ます。 ( 要素数を初めに指定せず動的に配列のサイズを変更する事も可能です ) またアクセス時は要素番号を指定して各要素にアクセスします。 配列の宣言、参照のサンプル
' 配列の宣言 Dim week(6) '0〜6の7要素を持つ配列が作成されます。 ' 要素への代入 week(0) = "sun" week(1) = "mon" week(2) = "tue" week(3) = "wed" week(4) = "thu" week(5) = "fri" week(6) = "sat" ' 要素の参照 Response.Write(week(0)) 'sunと出力 Response.Write(week(6)) 'satと出力 [ 上記を図解すると・・・ ]
お気づきだと思いますが、配列の要素は 0から始まります。 宣言時に 6とした場合は 0〜7 で 7個の要素をもつ配列を作成すると言う意味になります。 Perlや Javascriptではエラーになりませんでしたが、VBScriptでは範囲外の要素の指定にアクセスした場合はエラーとなりますので注意してください。
'範囲外にアクセスしたため実行時エラーとなる Response.Write(week(7)) |
|||||||||||||||||||||||||||||||||||||||||||||||||