こんにちはIntenet Start Pages の Suzukiです。 さて、プログラミング入門の最終章となる(お願いだから最終にしてくれ!!) このActiveXは、Winodows最新プログラミングコンポーネントとして余りにも有名です。 しかしこのActiveX を勉強している人や、理解している人を見かけることはほとんどあ りません なぜなら・・・ 超難しいからです(笑) 語る人は沢山いても実際に理解するとなると・・・・ 通常はちゃーんとHTMLファイルに変換してBGM付きのおしゃれな(?)ページに しているのですが、なにぶん余りにも内容が多くて長いので表示が早くて軽い テキスト形式をとりました。 だからバックもそのままなんの味付けもない簡素なページとなりました。 ま、読めりゃいいか・・・・ と開き直って勉強してみて下さい。 第〜章という風に分けることも考えましたがどうせみんなはコピーして紙の上で 考えるのだろうな・・・・ ということが頭をよぎり1ページにまとめました。 面倒くさいから1ページにまとめているのではありません。あしからず・・・ このActiveX入門は ActiveXとは HTML入門 VisualBasicScript入門 JavaScirpt入門 VBScriptアプリケーションとは JavaScriptアプリケーションとは ActiveX...... という感じでかなり解らない人を対象に必要なプログラミング言語が勉強できるように なっています。(だから長くなったのだけど) どこまで長くなるかは僕も解りません・・・・ とりあず・・まずは始めましょう!! Active X ........********************************** インターネットのためのプログラミング HTMLと、HtmlScript********************************* Htmlの要素 ページ構造 タグ の使い道 コメントタグ 見出しタグ パラグラフタグ リンク<a>タグ リスト 表組<table>タグ フォームとインプット <Script>タグ <Object>タグ ActiveXスクリプト********************************* スクリプトとプログラミング言語の違い HTMLスクリプト JavaScriptとVBScript VBScriptの基礎*********************************** コメント 変数 変数の名前 Dim Option Explicit 定数 Empty Null Nothing True,False 変数のスコープとグローバル変数 配列と宣言 Dimステートメント ReDimステートメント プロシージャ Subステートメント Callステートメント Exit Subステートメント ユーザ定義関数 演算子 Setステートメント( Set ) 算術演算子 加算演算子( + ) 減算演算子( - ) 累乗演算子( ^ ) 剰余演算子( Mod ) 乗算演算子( * ) 除算演算子( / ) 整数除算( \ ) 文字列演算子 比較演算子 等価( = )演算子 不等( <> )演算子 その他の演算子( < , > , <= , >= ) 組み込み関数 Asc,AscB,AscW関数 Chr,ChrB, ChrW関数 CBool関数 CDate,CDbl,Clnt,Clng,Csng,Cstr関数 DateSerial関数 Fix,Int 関数 日付・時間関数 Day,Month,Weekday,Year,Hour,Minute,Second関数 プログラムの流れ Do.....Loopステートメント For...Next ステートメント Select Caseステートメント While....Wendステートメント ユーザーインターフェース Java Script******************************************: 大文字と小文字を区別します。 コメント 変数 varステートメント 定数 変数のスコープ(適用範囲)とグローバル変数 プロシージャ EVAL関数 parselnt,parseFloat関数 演算子 代入演算子 算術演算子 倫理演算子 比較演算子 文字列演算子 オブジェクト プロパティ メソッド 配列 組み込みオブジェクト Mathオブジェクト Date オブジェクト プログラムの流れ if ステートメント for ステートメント while ステートメント for...inステートメント ユーザーインターフェース VBScriptのアプリケーション**************************** to be continued.... ActiveX *********************************************************************** ActiveXはC++、HTML、などのようにある種のプログラミング言語だと考えられていた。 しかし、ActiveXは、テクノロジーである。 コンピュータ環境を利用してWeb上で効率的に安全に通信するために用いる手段なので ある。 Html,VisualC++,VisualBasic,DirectX,JavaScriptなどの言語はActiveXテクノロジーを 利用するときに使える。 なぜActiveXを使いたいのか? それはインターネット上でも、オフラインでの環境と全く同じ環境を作ることができる 唯一のテクノロジーだからです。 インターネットだからこれができない・・・ インターネットだからオフラインのときとここが違う・・・ そう言うことがこれからは少なくなってゆくでしょう。 ActiveXを使えば莫大な数のアプリケーションをマシンにインストールする必要があり ません。 ActiveXプログラムはブラウザを通して必要なドキュメントをローカルマシンにダウン ロードしてインストールしてくれます。 そのソフトがいらなくなったらそれは自動的に削除されほかの目的のためにシステムリ ソースが解放されるのです。 しかしこのテクノロジーを動かすためには難解なプログラミング言語が、全て必要にな ります。 その全てとは・・ MS-DOS(OS) Unix(OS) Html Perl VisualBasic VisualBasicApplication VisualBasicScript VisualJ++ Java JavaScript C VisualC++ ”少なくとも”これらは理解する必要があります。 アクティブエックスを説明する前にどうやらこれらの説明から入った方が良さそうです ね。 基本的なことから説明しますがここにかかれていることがすらすらと理解できるようで あればActiveXを学ぶことができます。 このテキストを見てActiveXの章にはいっていないのに理解できない部分があれば勉強 不足と言うことになります。 その部分を勉強してからActiveXを学ぶことにしましょう。 急がば回れ・・・です。 ****************************************************************************** インターネットのためのプログラミング ActiveXはイントラネット及びインターネットのプログラミングに関する既存のテクノ ロジーにおいては、もっとも先進的なテクノロジーである。 それは、 コンピュータ中心のプログラミングから、ドキュメント中心のプログラミングへのシフ トを示している。 ダイアルアップネットワーク インターネットユーザはプロバイダを介してインターネットに接続されている。 さらに多くのユーザが、ダイアルアップアカウントを介した情報課金によってインター ネットに接続されている。 つまり専用回線で接続されているのでないなら一般の電話回線上のダイアルアップ接続 で繋がれているのである。 ActiveXリリース ActiveXとはインターネットをアクティブ化する というビルゲイツの指令である。 ドキュメンオブジェクト ActiveXテクノロジーではインターネット上のここのドキュメントはオブジェクトとし て参照される。ドキュメントとはネット上のどこかに存在し別のマシンに転送できるア イテムのことを意味する。ドキュメントオブジェクトはユーザのマシン上で動く全体の プログラムのような場合もあれば、スプレッドシートテーブル、レジメまたは経営計画 のようなワープロ文書などの場合もある。 ハイパーテキスト ハイパーテキストによって使用するコンピュータの種類に関係なくユーザがコンテンツ と対話できるよう内ネットを介して様々なコンテンツのフォームをフォーマットする方 法である。 従ってUnix,Windows,Macなどのユーザーはそれぞれ一つの同じ情報に互いにアクセスし て対話し、そして情報を更新することができる。 この方法で共有できるコンテンツのもっとも一般的なタイプを「マルチメディア」と呼 ぶ。 ネット上でこのマルチメディアデータを転送するための標準フォーマットを MIMEという(Multimedia Internet Mail Extensions) ハイパーテキスト仕様はこれらのドキュメントをどのようにまとめるかについての定義 である。 ドキュメントとは結合されたテキスト以外の何者でもない。 ハイパーテキストはどのようなコンテンツがドキュメントにあるかを定義するものでは なく、コンテンツがどのようにフォーマットされるのかについて定義する。 ***************************************************************************** HTMLと、HtmlScript HTML(Hypertext Markup Lnguage)はスクリプト言語やActiveXオブジェクトをWebページ に組み込むためのものである。 Htmlはテキストデータであり、どのようなテキストエディタでも生成可能である。 <html> <head> <title> Hello,world. Hello,world. このファイルをHello.htmlというファイルとして保存してWebブラウザを起動して読み 込むとブラウザでは Hello,world と表示されるはずです。 Htmlの要素******************************************** HTMLはタグを使用してアイデアをWebブラウザに伝える。 タグはブラケット<>で囲まれる。 または ページ構造******************************************** 及びという3つのタグは、ほとんど全てのWebページで使用される。 Webページの全ての動作はこれらのタグの中で起こる。 しかし、はなくとも動作する。 Hello,world 全てのドキュメントはタグによって囲まれる。 タグ******************************************** Webページに関する情報を保存できる場所である。 ここに格納された情報はページには表示されない。このセクションは該当ドキュメント のほかのセクションがロードされる前にロードされこのタグ内に<Script>や<Obj ect>などのタグを入れられる。 <html> <head> <title> My Web Page This is My Very Own Web Page の使い道*************************************** ブラウザがお気に入りのページをリストに加えるときに使用するのが<title>タグの内 容である。 Windowsのタスクバーに表示されるブラウザ上のポップアップもこのタイトルタグの内 容がリンクされ表示されることになります。 <body>タグ bodyはBackgroud属性が設定されている。 <html> <head> <title> Stars! I see Stars! コメントタグ******************************************* コメントタグは

First Script

Enter two Numbers and Press Calculate Button

First Number:

Second Number:

Answer:

タグ************************************* CLASSIDという訳の分からない属性とは・・・ CLASSIDはActiveXコントロールの識別子である。 これらの番号は、WindowsレジストリのCLSIDサブディレクトリしたにActiveXコントロ ールがあれば見ることができる。 ビジュアル的にはあか抜けないがスクリプトと完全に強調動作する。 新しいWebページの幕開けである。 Inserting Objects

first ActiveX Object

This used to be an OCX but now it's ActiveX!

ActiveX Text Box:

ActiveXスクリプト************************************************************* これから次のスクリプト言語を操作することでActiveXをコントロールすることができる 。 HTMLスクリプト JScript(JavaScript) VBScript ActiveXスクリプトエンジン サーバーサイドスクリプトとクライアントサイドスクリプト*********** サーバーサイドスクリプトとは要求してくるそれぞれの接続に対してビジーなサーバー のシステム資源は過大な負担を背負うことになる。メモリとストレージは食い尽くされ かねない。 そして冗長なコードのロード、実行、そしてアンロードが増えるに連れ、サーバー側の 処理スピードは遅くなる。 同時に複数のクライアントが同じサーバーに接続を試みると、接続が遅れたユーザーの アクセスは拒否される。 この処理はクライアントサイドスクリプトによって多少改善される。 コード処理の負担はサーバー側からクライアント側にシフトされる。スクリプトがメイ ンサーバー上ではなくローカルマシン上で実行されるようになると、クライアントとサ ーバー間のトラフィックが減りサーバーは同時により多くの要求を処理することができ るようになる。 サーバーサイドスクリプトにははCGI,Perlなどを使用した伝言板やチャットが代表的。 サーバーに計算をさせたり処理をさせるため、複数のユーザーが同時にアクセスをする とサーバー処理が極端に遅くなる。 ブラウザはこの間にVBScript,JavaScript AcatieXScriptを実行することができる。 スクリプトとプログラミング言語の違い***************************** プログラムは普通、それ自体で実行できる実行可能モジュールにコンパイルされる。 あるいはDLL(ダイナミックリンクライブラリ)などのライブラリにコンパイルするこ ともできる。 スクリプトは記述されたファイル以外にホストとエンジンという2つのものが必要とな る。 ホスト インターネットに直接接続されているシステムのことを全てホストという。 インターネットではアドレスでインターネットに接続される全てのマシンのことも指す クライアント 基本的な接続においてはクライアントとは何かしらの要求を出す側のことを言う サーバー サーバーとはこの要素を処理する側のことを言う。 スクリプトホスト スクリプトエンジンを使用してローカルマシン上でスクリプトを実行するプログラムの ことを指す。(Internet Explorer,NetscapeNavigator...)ホストアプリケーションはユ ーザーとサーバー間の仲介役のプログラムでユーザーマシンに常駐する。 エンジン ホストがスクリプトを実行するためにはホストはスクリプトエンジンを参照しなければ ならない。 このエンジンは通常ホストにスクリプトの翻訳の仕方を教えるライブラリまたはライブ ラリセット(VBScript.dllやJScript.dllなど)である。 スクリプト スクリプトはドキュメントのコンテキスト内でサポートされている様々なオブジェクト を参照できる。 これらのオブジェクトにはドキュメントオブジェクトやそれ以外の埋め込みのオブジェ クトが含まれる。 HTMLスクリプト********************************************* スクリプト要素 クライアントサイドスクリプトをHTMLドキュメントに組み込むには ブラウザによっては JavaScriptとVBScript******************************** HTMLファイル内でスクリプトを使用する場合、スクリプトコードはファイルの先頭 (Head要素内)に配置するのがベストです。 コードを先頭には位置する一つの理由は、このコードは実際にファイルに書き込まれる からである。 ActiveXスクリプトと、よく言われるが、実際のところActiveXスクリプトという言語は 存在しない。ActiveXスクリプトとはスクリプトエンジンのOLEインターフェースを使用 するのに付けられた名前である。従って通常はインターネットエクスプローラに含めら れているJavaScriptとVBScriptの2つのスクリプトが参照されることになる。 コードをファイルの先頭には位置するもう一つの理由は倫理的にページが表示された後 でしか起動できないプロシージャのためである。コードはページ処理に不可欠なため、 ページの残りが表示される前にロードされる必要がある。 もう一つはコードをヘッド要素内においてユーザが必要とする前にスクリプトの利用を 可能にすることも必要である。 JavaScript ActiveXControlPadはJavaScriptコードを記述するための便利なユーティリティである。 Java言語をサポートするMicrosoftの開発環境にはVisualJ++がある。 これを使えばJavaアプレット、OLEレベルのコード、及びその他の強力なインターネッ トツールのコンパイルが可能になります。 VBScript VBScriptはHtmlスクリプトに対するMicrosoftのもう一つの大きな実装部分である。 VBScriptは多くの点でJavaScriptと似ている。 VBScriptはMs Office アプリケーションの統一されたマクロ言語である。 VBScript,VBA,VBの3つの中でVBScriptはもっともアプリケーションを容易に構築でき る言語である。 ActiveXスクリプトの機能について 一般的なスクリプト言語から特殊化されたスクリプト言語まで様々な言語が使える。 クライアントサイドスクリプトは同時に複数の要求を処理しなければならないインター ネットサーバーの負担を和らげてくれる。 ホストはスクリプトの取得とエンジンによるスクリプトの処理との間を調整することに よってスクリプト機能を管理するプログラムである。 スクリプトはスクリプト言語で書かれた小さなコードのことでインターネットエクスプ ローラあるいはネットスケープなどのスクリプトホストで実行することができる。 エンジンはスクリプトの解釈、コンパイル、実行に必要なファイル及びルーチンである 。 ActiveXスクリプトは存在しない。 ActiveXスクリプトはプログラムではなくテクノロジーである。 ******************************************************************************* ******************************************************************************* VBScriptの基礎***************************************************************** VBScriptはこの数年で普及したプログラミング言語VisualBasicからは制したものであ る。 VisualBasicはMicrosoftOfficeつまりWord,Excel,Access,PowerPointにおけるスクリプ ト言語のベースとなるものである。VisualBasicはコンポーネントベースの言語だ。 フォーム上にコンポーネントを配置し、そしてVisualBasic言語を用いてそれらを連携 させることによって、VisualBasicプログラムを構築する。 VisualBasicはActiveXコントロールの元となるVisualBasicコントロール(VBX)をもたら した。 このVBXはOLEコントロール(OCX)となりそしてOLEコントロール(OCX)はActiveXコントロ ールに移行しそしてVisualBasicを元にVBScriptが開発されたのである。 VBScriptは手続き型言語である。 手続き型言語とは基本的な最小単位としてサブルーチンを使用する。例えば Sub LoadMe() Alert "This Space for Rent" Answer = Confirm("Launch the Shuttle?") String1 = Prompt("Enter Here","Defaulted Text") Alert string1 End Sub SubとEnd Subの間にあるものは全て手続き(プロシージャ)である。 Example Template 2つの関数が2つのウインドウオブジェクトイベントに割り当てられている。 そのうちの1つLoadMe()はonLoadイベントに割り当てられている。 これによりページがロードされるたびにLoadMeが実行される。 もうひとつのかんすうOutoofHere()はonUnloadイベントに割り当てられている。 これによりユーザーがページを抜けるたびにOutoofHereが実行される。 VBScriptは大文字・小文字の区別をしない。 従ってVBScriptではroseもROSEも同じように扱われる。 これは、C,C++プログラミングに通じたユーザーにとっては納得がいかないかも知れな いが、VBasicではそうなのである。 実際には大文字と小文字を使い分けてプログラミングする方がわかりやすい。 コメント************************************ コメントはプログラマの作業(またはそのコードを見るプログラマの作業)をより楽に してくれる。VBScriptのコメントを残したい場合は Rem または ' を使います。 スクリプトの実行時にRem もしくは'の行の先頭から行の終わり(改行)までの全ての 文字が無視される。 行の途中から(ステートメントに続いて)その行にコメントを入れたいときにRemを使 用する場合はコロン(:)を使用しなければならない。 ' を使用するときは : を使う必要はない 変数****************************************** VBScriptはバリアント型という変数の型しか持っていない。 バリアント型はどんなデータ型にもなれる。例えば・・・ String1 = "Hello world" でも String1 = 2 + 2 でも良い。 スクリプトで言うと Sub LoadMe() 'ここにコードを記述する string1 = "hello world" window.document.open window.document.writeln("
")
	window.document.writeln(string1)
	string1 = 2 + 2
	window.document.writeln(string1)
	window.document.writeln("
") window.document.close End sub これをブラウザで実行すると hello world 4 と表示される 変数の名前**************************************: バリアント変数にはどんな名前を付けられるのか? 1.アルファベット文字で開始する 2.ピリオドを含んではならない。 3.255文字を越えてはならない。 4.それは宣言されるスコープ(適用範囲)内でユニークでないとならない。 例えば次のスクリプトはエラーになる。 Sub LoadMe() 'ここにコードを記述する 22street = "hello world" 'ここはアルファベットで始まる window.document.open window.document.writeln("
")
	window.document.writeln(string1)
	22street = 2 + 2			'ここもアルファベットで始まる
	window.document.writeln(string1)
	window.document.writeln("
") window.document.close End sub Dim******************************************** Dimは変数を宣言する。 しかし、VBScriptでは変数を宣言しなくても表示してしまう。 Sub LoadMe() 'ここにコードを記述する Dim string1 'Dimで変数を宣言 string1 = "I was declared" window.document.open window.document.writeln("
")
	window.document.writeln(string1)
	string2 = "I wasn't declared"	'ここは変数を宣言していない。
	window.document.writeln("
") window.document.close End sub このように変数を宣言しなくてもうまく機能する。しかし、プログラマによってhあ、 これは納得できないだろう。 VBScript二は全ての変数の宣言を義務づけるための方法がある。 それが Option Explicit である。 Option Explicit******************************** 修正例*************************************** ここには2つの 定数********************************************* 定数とはいったんそれが宣言されると変更できない変数のことである。 定数は円周率など、プログラマの解釈が異なってはならない値を保持するために使用さ れる。VBScriptではEmpty,Null,Nothing,True,Falseという5つの組み込みの定数があ る。 Empty************************* Emptyキーワードは未初期化の変数の値を示すときに用いられる。 Sub Loadme() 'ここにコードを記述する Dim string1 window.document.open window.document.write("string1 is empty ") if (string1 = Empty) then window.document.writeln("
")
	else
		window.documnet.write("string1 is no empty ")
	end if
	window.document.writeln("
") window.document.close End sub これを実行すると string1 is impty と表示される。 Null*************************** Nullキーワードは変数に有効なデータが全く含まれていないことを示す。これは未初期 化のデータを示すEmptyとは異なる。 Sub LoadMe() 'ここにコードを記述する Dim string1 string1 = Null window.document.open window.document.writeln("
")
	if (string1 = Empty) then
		window.document.write("strings1 is empty")
	end if
	if (isNull(string1)) then
		window.document.write("string1 is Null ")
	end if
	window.document.writeln("
") window.document.close End sub 最初のifステートメントは迂回されて次のような結果になる。 string1 is Null Nothing************************ NothingキーワードはNullやEmptyと異なり、オブジェクトに適用される。 また関連するテスト関数は持たない。オブジェクトをNothingに設定すると、変数とオ ブジェクトの関係は断ち切られる。 オブジェクトをNothingに設定するには Set MyObject = Nothing これを実行するとオブジェクトに割り当てられていた全てのシステムメモリやリソース の再割り当てが行われる。 すると if isObject(MyObject)then MyObject.document.open MyObject.document.write("Written by MyObject") MyObject.document.close end if が、使えるようになる。 但し、オブジェクトを使う前にオブジェクトのテスト(if MyObject = Nothing then... )を行うことを進めます。 Nothingに設定した後にMyObjectを使用しようとすると、オブジェクトが初期化されて いないことを知らせる1つあるいは2つのメッセージが表示されインターネットエクス プローラはハングアップする。 True,False*********************** VBScriptではTrueが-1,Falseが0となる。 従って0以外の値を全てTrureと仮定する。 Sub LoadMe() 'ここにコードを記述する Vartwo = -1 Varthree = 10 if Vartwo = true then window.document.open window.document.writeln("
")
		window.document.writeln("Vartwo is True")
		window.document.writeln("
") window.document.close end if if VarThree = True then window.document.open window.document.writeln("
")
		window.document.writeln("Varthree is False")
		window.document.writeln("
") window.document.close end if End sub これは予想したとおり Vartwo is True と、表示される。 変数のスコープとグローバル変数*********************************************** 変数のスコープとはプログラムまたhtmlページの構造の中で参照できる範囲のことであ る。 ここでは関数の外で宣言されたMyvariable変数が 結果表示すると In LoadMe MyVariable is Global edition of My Variable In ThingOne MyVariable is ThingOne edition of MyVariable In ThingTwo MyVariable is Global edition of My Variable となる。 配列と宣言********************************************************************* 配列は同じ型の変数の集合体である。 例えばMyThingsという配列の場合、MyThings(0)と書くことによってMyThingsの最初の 要素が得られる。 また、2番目の要素はMyThings(1)である。これらの0と1の配列の添字を示す。 VBScriptでは添え字を囲むために括弧()を用いる。さらに1次元配列だけでなく2次元 配列も作れる。 配列を宣言するときには変数を宣言するときに使用したものと同じDim関数を使う。 Dimステートメント*********************************** 配列を宣言するためには2つの方法がある。 そのひとつは、Dimステートメントで配列のサイズを宣言する方法である。 Sub LoadMe() 'ここにコードを記述する Dim string1(2) string1(0) = "This is " string1(1) = "the end " alert string1(0) & string1(1) end sub ReDimステートメント*********************************** 実行時に配列のサイズを変えたい場合は、Dimで値無しの配列変数名を記述し、ReDimを 使ってサイズの設定及びリセットを行う。 Sub LoadMe() 'ここにコードを記述する Dim string1() ReDim string1(2) string1(0) = "This is " string1(1) = "the end " alert string1(0) & string1(1) ReDim string1(3) string1(0) = "This is " string1(1) = "the end " string1(2) = "Really " alert string1(0) & string1(1) & string1(2) End sub 配列はDim string1()で宣言された後、ReDim でサイズが宣言されている。 さらに一連の処理を行った後、再度ReDim でサイズを変えている。 これにより、実行時の条件に従って、配列のサイズを変えて指定できる。 プロシージャ************************************************* 一般にプロシージャにはプログラミングの命令が含まれる。 プロシージャはイベントに割り当てられたり、ほかの関数から呼び出されたりもする。 正確に言えば全てのサンプルはプロシージャの一種であるサブルーチンである。 またもう一つのプロシージャには関数がある。 Subステートメント**************************** Subステートメントはサブルーチン(プロシージャ)を開始する。 サブりーちんとはキーワードSubとEnd sub(サブルーチンの終わりを示す)ステートメ ントの間に記述されたステートメントの集まりのことである。 Sub LoadMe() '変数の宣言 Dim string1() ReDim string1(2) '処理 string1(0) = "This is " string1(1) = "the end " alert string1(0) & string1(1) '処理の終了 End sub またプロシージャは引数ももてる。引数とはプロシージャに渡される変数や定数などの ことである。 このコードはかなり直接的である。 ユーザに2つのダイアログボックスで数字を入力させ、それから関数を呼び出してそれ らを足し算する。 このスクリプトを実行すると The Answer is -> 1020 となる。 しかし、10と20を足し算したら1020ではなく30になるはずでは・・・ このスクリプトは入力結果を文字列と見なし、それらを文字列としてつなぎ合わせたの である。 ゆくゆく出てくる演算子のところで詳しく説明します。 Callステートメント******************************** Callはプロシージャを呼び出すときに使うステートメントである。 Callを使う場合は、引数を括弧で閉じなければならない。 SumONumbers firstnum,secondnum Callを使う場合は次のように記述する Call SumONumbers(firstnum,secondnum) Exit Subステートメント**************************** Exit Sub はEnd Sub以外の場所かサブルーチンを抜ける手段を提供します。 Exit Subが呼び出されると、サブルーチンの呼び出しの次の行から実行を再開します。 前述のようにこのページはSumONumbersのコードの中程のExit Subを実行し、数字の40 を表示する。この値が負の数になるようにLoadMeサブルーチンの変数のいずれかを変更 すると、2番目のメッセージ「Error,nebative sum」が表示される。 ユーザ定義関数********************************** 関数はサブルーチンと同じ一般的な構造を持ったプロシージャであるが、関数には値を 返す能力がある。 また関数として定義するキーワードも異なる。 ************** The Answer is ->179.9848 これは簡単なら事案関数である。キーワードFunctionが先頭と終わりにあるのが解る。 また関数が返す値が関数名を使用して代入されていることが解る。 値が代入されていないと、関数の値は初期化されていない値となる。初期化されていな い値は関数が数式で使用されている場合は0,文字列として使用されている場合は、"" となる。 演算子************************************************************************* 代入演算子( = )***************************** ある値を別の値に代入する場合は必ずこの代入演算子を使用する。代入演算子はプログ ラミングの骨格となる。 ある値を別の値に割り当てるために 等号 = を使用する。 myvariable = someothervariable myvariable = somevalue Setステートメント( Set )*************************:: Setステートメントは、オブジェクトを定義するために用いられる。 sub LoadMe() 'ここにコードを記述する Set MyWindow = window MyWindow.document.open MyWindow.document.writeln("
")
	MyWindow.document.writeln("Did this with my own obuject")
	MyWindow.document.writeln("
") MyWindow.document.close End sub *********************** Did this with my own obuject Setステートメントを使用して変数MyWindowをwindowオブジェクトに設定している。 Setを使えば好きなだけオブジェクトへの参照を作れる。但し、Setが生成するのはオブ ジェクトへの参照だけで新しいオブジェクトを生成することはしない。 Set MyVariable = 9 と書いた場合 MyVariable = 9 と、同じ意味になる。 算術演算子******************************************************************* 加算演算子( + )********************************** +演算子は整数と実数の両方を扱える。従って、整数と実数の足し算が可能である。 Sub LoadMe() 'ここにコードを記述する example1 = 2 + 2 example2 = 5.67 + 1 example3 = 9.9 + 4.568 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End sub 結果として example 1 = 4 example 2 = 6.67 example 3 = 14.468 となる。 減算演算子( - )********************************** -演算子も制すと実数の両方に適用される。 Sub LoadMe() 'ここにコードを記述する example1 = 2 - 20 example2 = 5.67 - 1 example3 = 9.9 - 4.568 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.write(example3)
	window.document.writeln("
") window.document.close End Sub 結果として example 1 = -18 example 2 = 4.67 example 3 = 5.332 ここでもまた整数と整数を引き算して整数となりまた整数と実数を引き算して実数とな った。 累乗演算子( ^ )************************************ ^演算子は単純に^(累乗)する Sub LoadMe() 'ここにコードを記述する example1 = 2 ^ 8 example2 = 5.67 ^ 2 example3 = 9.9 ^ 4.568 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End Sub 結果として example 1 = 256 example 2 = 32.1489 example 3 = 35323.3243300256 剰余演算子( Mod )************************************** Mod演算子は2番目の引数によって1番目の引数を割りそのあまりを返す。 Sub LoadMe() 'ここにコードを記述する example1 = 2 Mod 8 example2 = 2 Mod 5.67 example3 = 4.5 Mod 4600.9 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End Sub 結果として example 1 = 2 example 2 = 2 example 3 = 4 乗算演算子( * )************************************* *演算子と2つの数字を乗算する Sub LoadMe() 'ここにコードを記述する example1 = 2 * 8 example2 = 2 * 5.67 example3 = 4.5 * 4600.9 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End Sub 結果として example 1 = 16 example 2 = 11.34 example 3 = 20704.05 二つの整数の乗算は整数を返し、その他の組み合わせは実数を返す。 除算演算子( / )************************************* /演算子とはいわゆるわり算のことである。 Sub LoadMe() 'ここにコードを記述する example1 = 25 / 8 example2 = 2 / 5.67 example3 = 4.5 / 4600.9 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End Sub この結果として example 1 = 3.125 example 2 = 0.352733686067019 example 3 = 9.78069508139712E-04 整数除算( \ )**************************************** \演算子はMod演算子と組になる演算子である。Mod演算子は余りを返すが、\演算子は除 算の商の整数結果を返す。 Sub LoadMe() 'ここにコードを記述する example1 = 25 \ 8 example2 = 2000 \ 5.67 example3 = 400.5 \ 46.9 window.document.open window.document.writeln("
")
	window.document.write("example 1 = ")
	window.document.writeln(example1)
	window.document.write("example 2 = ")
	window.document.writeln(example2)
	window.document.write("example 3 = ")
	window.document.writeln(example3)
	window.document.writeln("
") window.document.close End Sub 結果として example 1 = 3 example 2 = 333 example 3 = 8 文字列演算子**************************************************************** 文字列演算子には連結(&)という演算子しかない。 これは複数の文字列をつなぎ合わせる演算子である。 変数が文字列でないと、&演算子は文字列に変換して1つの文字列にすることができる Sub LoadMe() 'ここにコードを記述する part1 = "This is " part2 = "just a " part3 = "test" window.document.open window.document.write("Together the parts are ->" _ & part1 & part2 & part3) window.document.close End sub この結果は Together the parts are ->This is just a test 比較演算子********************************************************************* 比較演算子は変数間の関係をテストするときにVBScriptの制御構造内で使われる。 等価( = )演算子********************************* Sub LoadMe() 'ここにコードを記述する num1 = 10 num2 = 10 string1 = "10" string2 = "Hello" if num1 = num2 then alert("num1 equals num2") else Alert("num1 is not equal to num2") end if if num1 = string1 then Alert("num1 equals string1") else Alert("num1 is not equal to string1") end if if string1 = string2 then Alert("string1 equals string2") else Alert("string1 is not equal to string2") end if End sub 結果として num1 equals num2 num1 is not equal to string1 string1 is not equal to string2 不等( <> )演算子******************************** 不等は等価の逆である。記号は <> 使用する Sub LoadMe() 'ここにコードを記述する num1 = 21 num2 = 10 string1 = "Hello" string2 = "Hello" if num1 <> num2 then Alert("num1 is not equal to num2") else Alert("num1 equals num2") end if if num1 <> string1 then Alert("num1 is no equal to string1") else Alert("num1 equals string1") end if if string1 <> string2 then Alert("string1 is not equal to string2") else Alert("string1 equals string2") end if End Sub 結果として num1 is not equal to num2 num1 is no equal to string1 string1 equals string2 その他の演算子( < , > , <= , >= )********************************:: これらの比較演算子は数字どうしあるいはテキストどうしの比較、特にそれらのリスト のソートによく使われる。 例えば < を使って A < B とした場合はAはBより小さいことを示しその時このBは含ま れない。 また > を使って A > B とした場合は A は Bよりも大きいことを示す。その時こ のBは含まれない これらの条件が満たされるといずれの場合もTrueの値を返す。 さらに A <= B AはB以下である A >= B AはB以上である。 Sub LoadMe() 'ここにコードを記述する item1 = 21 item2 = 10 if item1 < item2 then Alert("item1 one is less than item2") end if if item1 > item2 then Alert("item1 one is greater than item2") end if if item1 <= item2 then Alert("item1 one is less than or equal to item2") end if if item1 >= item2 then Alert("item1 one is greater than or equal to item2") end if End Sub ***************************** item1 one is greater than item2 item1 one is greater than or equal to item2 組み込み関数****************************************************************** Abs関数 この関数は、該当の引数をその引数の絶対値に変換する。 Sub LoadMe() 'ここにコードを記述する A = -10 window.document.open window.document.writeln("
")
	window.document.write("abs(A) = ")
	window.document.writeln(abs(A))
	window.document.writeln("
") window.document.close End Sub ********************* abs(A) = 10 Asc,AscB,AscW関数*******************************: これらの関数は引数の文字列の最初の文字を返す。 Ascは最初の文字のANSIコードを返す。 AscBは最初のバイトデータを返します。 AscWはUnicode 文字として最初の文字を返します。 Sub LoadMe() 'ここにコードを記述する Sting1 = "This is a test" result1 = Asc(Sting1) result2 = Ascb(Sting1) result3 = Ascw(Sting1) window.document.open window.document.writeln("
")
	window.document.write("asc(string1) = ")
	window.document.writeln(result1)
	window.document.write("ascb(string1) = ")
	window.document.writeln(result2)
	window.document.write("ascw(string1) = ")
	window.document.writeln(result3)
	window.document.writeln("
") window.document.close End Sub ***************************** asc(string1) = 84 ascb(string1) = 84 ascw(string1) = 84 Chr,ChrB, ChrW関数******************************* これらはAscと同じ仲間の関数です。 Chrは数字をASCII文字に変換します。 ChrBは1バイトの文字をASCII文字に変換します。 Chr"はこれと同じ昨日をUnicodeで提供します。 Sub LoadMe() 'ここにコードを記述する Num1 = 73 result1 = Chr(Num1) result2 = Chrb(Num1) result3 = Chrw(Num1) window.document.open window.document.writeln("
")
	window.document.writeln("
")
	window.document.write("chr(string1) = ")
	window.document.writeln(result1)
	window.document.write("chrb(string1) = ")
	window.document.writeln(result2)
	window.document.write("chrw(string1) = ")
	window.document.writeln(result3)
	window.document.writeln("
") window.document.close End Sub ***************************** chr(string1) = I chrb(string1) = I chrw(string1) = I CBool関数******************************* CBool関数は該当の引数(数または式)をTrueまたはFalseに変換します。 引数がFalse以外に評価される場合(すなわち0以外)CBoolはTrueを返します。 引数がFalseに評価される場合(すなわち0)の時、CBoolはTureを返します。 引数を評価できないときCBoolはランタイムエラーを引き起こします。 Sub LoadMe() 'ここにコードを記述する Num1 = 73 Num2 = 45 result1 = Cbool(Num1 = Num1) result2 = cbool(Num1) result3 = cbool(0) window.document.open window.document.writeln("
")
	window.document.write("Cbool(Num1 = Num1) is ")
	window.document.writeln(evaluate(result1))
	window.document.write("Cbool(Num1) is ")
	window.document.writeln(evaluate(result2))
	window.document.write("Cbool(0) is ")
	window.document.writeln(evaluate(result3))
	window.document.writeln("
") window.document.close End Sub function evaluate(bValue) if(bValue) then evaluate = "Ture" else evaluate = "FALSE" end if End function ************************ Cbool(Num1 = Num1) is Ture Cbool(Num1) is Ture Cbool(0) is FALSE
CDate,CDbl,Clnt,Clng,Csng,Cstr関数************************ これらの関数は該当の引数を特定の型に変関する。 CDateはDate型(日付) CDblはDouble型(浮動小数点型) CInt はInt型 CLngではLong型(長整数型) CSngはSingle型(短精度浮動小数点型) CStr ではString型(文字列型)にそれぞれ変換されます。 Sub LoadMe() 'ここにコードを記述する Num1 = 73 Num2 = 45 string1 = "57.32" string2 = "15 May 1955" number1 = 15.78 result1 = Cdate(string2) result2 = Cdbl(string1) result3 = Cint(string1) result4 = Clng(string1) result5 = csng(string1) result6 = CStr(number1) window.document.open window.document.writeln("
")
	window.document.write("Cdate(string2) is ")
	window.document.writeln(result1)
	window.document.write("Cdb1(string1) is ")
	window.document.writeln(result2)
	window.document.write("Cint(string1) is ")
	window.document.writeln(result3)
	window.document.write("Clng(string1) is ")
	window.document.writeln(result4)
	window.document.write("csng(string1) is ")
	window.document.writeln(result5)
	window.document.write("CStr(number1) is ")
	window.document.writeln(result6)
	window.document.writeln("
") window.document.close End Sub *********************** Cdate(string2) is 55/05/15 Cdb1(string1) is 57.32 Cint(string1) is 57 Clng(string1) is 57 csng(string1) is 57.32 CStr(number1) is 15.78 DateSerial関数************************: DateSerialは年、月、日の3つの数字をとり、それらをDate型に変換する。 Sub LoadMe() 'ここにコードを記述する。 result1 = DateSerial(1994, 6, 1) window.document.open window.document.writeln("
")
	window.document.write("DateSerial1994, 6, 1) is ")
	window.document.writeln(result1)
	window.document.writeln("
") window.document.close End Sub ******************************* DateSerial1994, 6, 1) is 94/06/01 Fix,Int 関数*********************** FixとIntは、数値の整数部分を取り出すときに使います。 これらの違いは、引数が負の値の場合、Fixはその引数より大きいあるいはそれと等し い値を返すのに対し、Intはその引数より小さいあるいはそれと等しい値を返すことであ る。 Sub LoadMe() 'ここにコードを記述する number1 = -25.6 result1 = int(number1) result2 = fix(number1) window.document.open window.documet.writeln("
")
	window.document.write("int(number1) is ")
	window.document.wdriteln(result1)
	window.document.write("fix(number1) is ")
	window.document.writeln(result2)
	window.document.close
End Sub

***********************************
int(number1) is -26
fix(number1) is -25

日付・時間関数**********************************

これらの関数はマシンから現在の時間と日付の情報の全てまたはその一部を返す。
Date関数は日付の情報をTime関数は時間の情報を
Now関数は時間と日付の両方の情報を返す。

Sub LoadMe()
	'ここにコードを記述する
	result1 = date
	result2 = time
	result3 = now
	window.document.open
	window.document.writeln("
")
	window.document.write("Date is ")
	window.document.writeln(result1)
	window.document.write("Time is ")
	window.document.writeln(result2)
	window.document.write("Now is ")
	window.document.writeln(result3)
	
*********************
Date is 97/03/12
Time is 20:56:55
Now is 97/03/12 20:56:55

Day,Month,Weekday,Year,Hour,Minute,Second関数*******************************


これ化の関数はそれぞれ時間と日付の情報の一部を返します。

Sub LoadMe()
	'ここにコードを記述する
	result1 = Day(date)	
	result2 = Month(date)
	result3 = WeekDay(date)'デフォルトは日曜日
	result4 = Year(date)
	result5 = Hour(time)
	result6 = Minute(time)
	result7 = Second(time)
	
	window.document.open
	window.document.writeln("
")
	window.document.write("Day(date) ")
	window.document.writeln(result1)
	window.document.write("Month(date) is ")
	window.document.writeln(result2)
	window.document.write("WeekDay(date) is ")
	window.document.writeln(result3)
	window.document.write("Year(date) is ")
	window.document.writeln(result4)
	window.document.write("Hour(time) is ")
	window.document.writeln(result5)
	window.document.write("Minute(time) is ")
	window.document.writeln(result6)
	window.document.write("Second(time) is ")
	window.document.writeln(result7)
	window.document.writeln("
") window.document.close End Sub *************************** Day(date) Month(date) is 10 WeekDay(date) is 5 Year(date) is 1997 Hour(time) is 18 Minute(time) is 5 Second(time) is 22 プログラムの流れ*************************************************************** Do.....Loopステートメント****************** Do....LoopとUntilを使用して、条件が一致するまで処理を繰り返すことができる。 また、処理の前に条件を判定したい場合は、Do While...Loopが使えます。 Sub LoadMe() 'ここにコードを記述する Dim count count = 0 Do While count <> 0 count = count + 1 Loop result1 = count Do count = count + 1 LeaveNow = True Loop Until LeaveNow = True result2 = count window.document.open window.document.writeln("
")
		window.document.write("count after first loop is ")
		window.document.writeln(Result1)
		window.document.write("count after second loop is ")
		window.document.writeln(Result2)
		window.document.writeln("
") window.document.close End Sub ***************************** count after first loop is 0 count after second loop is 1 For...Next ステートメント*******************: このステートメントにより、指定した回数だけ、複数のステートメントを実行すること ができる。 Forでカウンタを設定し、Toでカウンタの増分を設定する。 Stepを省略すると増分は1になる。 Sub LoadMe() 'ここにコードを記述する string1 = "123456" window.document.open window.document.writeln("
")
	
	For Counter = 1 To 6
		window.document.write(mid(string1,counter,1) & "*")
	Next
		window.document.writeln(" ")
	
	For Counter = 6 To 1 Step -1
		window.document.write(mid(string1,counter,1) & "*")
	Next	
		window.document.writeln(" ")
	
	For Counter = 1 To 6 Step 2
		window.document.write(mid(string1,counter,1) & "*")
	Next
		window.document.writeln("
") window.document.close End Sub *****************: 1*2*3*4*5*6* 6*5*4*3*2*1* 1*3*5* Select Caseステートメント************************: Select Case ステートメントでは分岐した条件の値に応じてコードを実行することがで きる。 Sub LoadMe() ' Your Code Here choice = int(prompt("Input a number","4")) window.document.open window.document.writeln("
")

 Select Case Choice	
  Case  1, 2, 3, 4, 5
   window.document.writeln("Number is between 1 and 5")
  Case 6, 7
   window.document.writeln("Number is  6 and 7")
  Case 8, 9	
   window.document.writeln("Number is between 8 and 9")
  Case Else	
   window.document.writeln("Number over 9")
 End Select
 
 window.document.writeln("
") window.document.close end sub ************************************* 入力ダイアログでのデフォルト値が4であり、デフォルト値でOKボタンをクリックす ると Number is between 1 and 5 となる。 While....Wendステートメント******************** Whileの条件がTrueの間WhileとWendに挟まれたステートメントを繰り返し実行する。 Sub LoadMe() ' Your Code Here string1 = "Now is The Time" Teststring = "T" Dim CurrentString Count = 1 window.document.open window.document.writeln("
")

 While StrComp(CurrentString, TestString) And Count <= len(string1) 
  CurrentString = mid(String1, count, 1)
  window.document.write(CurrentString & "*")
  count = count + 1
 Wend  

 window.document.writeln("
") window.document.close end sub ************************* N*o*w* *i*s* *T* ユーザーインターフェース*************************** VBScriptではAlertメソッドやPromptメソッドのほかに融通のきくユーザーインターフ ェースが用意されている。 MsgBox関数とInput関数である。 Sub LoadMe() 'ここにコードを記述 result1 = MsgBox("This is the Message",0, "MyMessageBox") result2 = InputBox("This is the Prompt", "MyTitile", "Default Text") result3 = Alert("test") End Sub ****************************************************************************** ******************************************************************************* ******************************************************************************* Java Script JavaScriptの前身はNetscapeNavgator用に構築されたスクリプティング言語 LiveScriptである。 Sunと共同でLiveScriptという名前をJavaScriptに変更したのである。 JavaScriptはMicrosoftのインターネットエクスプローラでもサポートされている。 JavaScriptはオブジェクト指向の言語である。 JavaScriptはオブジェクト指向のためHTMLにネイティブなオブジェクトだけではなく ActiveXコントロールの操作も可能である。 ここで重要なのはJavaScriptはJavaではないということです。 JavaはC/C++のような本格的なアプリケーション構築環境になりつつある開発言語で あるのに対しJavaScriptはWebページのスクリプティング専用の言語である点が大きく 異なる。 NetScapeNavigatorはJavaScriptを標準装備している。 独自の標準と言うことで進化が早くまた問題も少ない。 インターネットエクスプローラはJavaScriptとActiveXスクリプトの両方がサポートさ れている。 従ってJavaScriptとVBScriptをともに使用するにはインターネットエクスプローラが必 須となる。 JavaScriptはオブジェクト指向の言語である。 プログラミングが初めての人のために説明すると、オブジェクト指向型言語はオブジェ クトを用いて関連するプロパティとメソッドをグループ化する言語である。 一般にオブジェクト指向型言語の欠点は手続き型言語よりも学習曲線が急勾配であると いうことです。 設計とメンテナンスの面では、JavaScriptはWebプログラマにお勧めである。 ***************************************************************************** このスクリプトは2つの 大文字と小文字を区別します。*********************************:: ******************** 1 4 5 ******************** コメント******************* コメントはユーザの作業(またはユーザのプログラムを見る人間の作業)をより楽にし ます。 コメントを残したいときは // または /* */ を使います。 // を使用した場合は、スクリプトの実行時に//の先頭から行の終わりまでの全ての文 字がコメントとして無視される。 /* */を使用した場合は/* と*/の間にある全ての文字が無視される。 ************************* 3 変数の型**************************: JavaScriptでは数値型、文字型ブール型という基本的な3つの型とnullという特殊な値 がサポートされている。 数値型変数または浮動小数点を表し、文字列型変数は"Hello World"などの文字を表示 させます。 ********************* MyUninited is null ********************* JavaScript変数の名前には次の2つの規則がある。 アルファベット文字または下線(_)で開始する。 それは宣言されるスコープ(適用範囲)内でユニークでなければならない。 次のプログラムはエラーを引き起こす。 varステートメント************************************ JavaScriptでは変数の宣言は簡単でまた省略も可能である。 既に使っているが変数の宣言にはvarステートメントを使う。 ******************** 1 value two 定数******************** 通常JavaScriptは定数をサポートしない。定数とはいったんそれが宣言されたら変更で きない変数のことである。 定数はPi(円周率)など、プログラマの解釈が異なってはならない値を保持するために 使用される。 JavaScript環境内のいくつかのオブジェクトは定数として利用できる読み出し専用のプ ロパティを持っている。ここに登場するMathオブジェクトはPIという名前のプロパティ を持っている。 ********************* 3.141592653589793 ********************* 当然変更をしても定数の値は変わらない ********************* 3.141592653589793 変数のスコープ(適用範囲)とグローバル変数****************** 変数のスコープとはプログラムまたはHTMLページの構造の中で参照できる範囲のことで ある。 ***************************** In onLoad MyVariabel is Global edition of My Variable In ThingOne MyVariable is Thing One edition of MyVariable In ThingTwo MyVariable is Global edition of My Variable ここで宣言されたMyVariable変数が *************************************** 0.785398163397448 Rad is 45.0190227259417degs EVAL関数**************************************** eval関数は次の構文を持っている。 eval(string) eval は文字列の引数をとり、小型のインタプリタのように機能する。 ******************** 11730 parselnt,parseFloat関数******************** parseInt ,parseFloatの関数はどちらも一つの文字列の引数をとる。 parseFloat(string) parseInt(string) parseInt関数は引数に文字列をとり、整数を返す。 parseFloat関数は引数に文字列をとり、浮動小数点数を返す。 *************************** MyFloat = 34.345 MyInt = 34 演算子*************************** 代入演算子 ある値を別の値に代入する場合は必ずこの代入演算子を使用する。 = 右の式の値を左の式に代入する += A=A+Bと同じ -= A=A-Bと同じ *= A=A*Bと同じ /= A=A/bと同じ %= A=A%Bと同じ(AとBを割り、その余りをAに代入する) *************************** 算術演算子 算術演算子はこれまで当然のごとく使用していた演算子の一つである。 これらの演算子を学ぶに当たって重要なのは、それらが整数と実数の様々な組み合わせ においてどのように機能しているかを理解することである。 + 加算 - 減算 * 乗算 / 除算 % 剰余演算(除算の余りを代入) ++ 一つずつインクリメント -- 一つずつデクリメント *************************** 倫理演算子 倫理演算子は2つの倫理型(ブール型)の式の結果を組み合わせるときに使用する) && 両方の式がTrueの場合に限り、Trueを返す。それ以外はFalseを返す。 || どちらか一方の式あるいは両方の式がTrueの場合に限り、Trueを返す。 両方の式がFalseの場合はFalseを返す。 ! これは一つの式でのみ適用できる。式がTrueの場合はFalseを返し、式が Falseの場合はTrueを返す。 **************************+ 比較演算子 比較演算子は、変数間の関係をテストするときに使われる。 == 等価の比較(代入ステートメントの=とは異なります。) != 不等 > より大きい < より小さい >= より大きいかまたはそれと等しい <= より小さいかまたはそれと等しい ************************** 文字列演算子 文字列演算子には(+)という演算子しかない。 = と==を区別して使うような言語が、文字列の連結に加算と同じ(+)を使っていると いうのは・・・不思議です *************************** Thing one and Thing two and 3 *************************** オブジェクト******************************************************************* JavaScriptはオブジェクト指向型言語であるということを述べた。 JavaScriptではwindowオブジェクトのように自分自身のプロパティとメソッドを持つオ ブジェクトを生成できる。 これにより、メソッドとプロパティを論理的にグループ化することが可能となる。 JavaScriptではユーザー定義のオブジェクトを生成することも簡単に出来ます。 次のMyObuject("Circle",10,5)はユーザが生成したテンプレートを実行する新しいオブ ジェクトを生成し、変数を引数リストに割り当て、そしてその新しいオブジェクトにSha pe1と名付ける。 *************************** Circle 10 25 *************************** プロパティ********************************************************************* 前述のサンプルで設定したこれらの変数は、オブジェクトのプロパティである。 それらにはドキュメントオブジェクトで使用したのと同じ表記によってアクセスできる Shape1オブジェクトの型はShape1.typeによって参照できる。 window.document.writeln(Shape1.type) 次のスクリプトは前述でのスクリプトを修正するためのスクリプトである。 *****************************: Circle 10 25 24 167 ***************************** メソッド********************************************************************** 生成したオブジェクトにもう少し仕事をさせたい場合は、いくつかのメソッドを追加す る。次のスクリプトはオブジェクトに自分自身で出力させるようにするための方法を示 している。 ***************************** type = Circle height = 10 width = 25 x value= 24 y value= 167 **************************** 配列************************************************************************** 配列とは添字によってアクセス可能な要素の集合体のことである。 例えばMYArray[1]の場合は配列において1の添字を持つ要素にアクセスする。 JavaScriptでは組み込みの配列はサポートしていない。従って配列を使用する場合は、 ユーザ定義の配列を作る必要がある。 **************************** MyArray[1] = Thing1 MyArray[2] = Thing2 MyArray[3] = 3 MyArray[4] = 4 *************************** 組み込みオブジェクト********************************************************** String(文字列)オブジェクト JavaScriptのStringオブジェクトは1つのプロパティと19のメソッドを持っている。 次のように変数に文字列を代入することによりStringオブジェクトが生成される var mystring = "Hello World" myotherstring = "Something" ********************* ************************ Str1.length = 11 Str1.toUpperCase = HELLO WORLD Str1.toLowerCase = hello world Str1.substring(0,5) = Hello length 文字列の文字数を示す toUpperCase() 文字列の大文字のバージョンを返す toLowerCase() 文字列の小文字のバージョンを返す substring(startindex,endindex) 指定した文字の間の文字列を返す Mathオブジェクト****************************** JavaScriptのMathオブジェクトは8つのプロパティと17のメソッドがある。 Math関数はMath.PIのようにMathオブジェクトを使って参照される。 ****************************** sin(angle) = 0.49999999999999994 cos(angle) = 0.8660254037844387 round(angle) = 1 exp(angle) = 1.6880917949644684 sin(number) numberがラジアンである正弦 cos(number) numberがラジアンであるコサイン round() もっとも近い整数への四捨五入 exp(number) numberのべき乗指数の値 Date オブジェクト********************************************* JavaScriptのDateオブジェクトはプロパティを持たないが20のメソッドを持っている 次の構文で新しいDate変数を定義する。 "month day,year hours:minutes:seconds" 月日,年時:分:秒 year,month,day 年,月,日 year,month,day,hours,minutes,seconds 年,月,日,時,分,秒 *************************: *********************** mydate = Thu Oct 9 23:36:34 UTC+0900 1997 mydate.getHours() = 23 mydate.time() = 876407794500 getHours(timevalue) 日付をDateオブジェクトに設定する getTime() Dateオブジェクトから1970年1月1日午前0時0分0秒以降 から現在までの時間をミリ秒単位で示す整数を返す。 ************************ プログラムの流れ*************************************************************** if ステートメント JavaScriptにはif,for,while,for...inステートメントの4つの制御構造を持っている。 if,for,whieステートメントは一般的な制御構造である。 for...inステートメントはオブジェクトを介した繰り返し処理のために用いられる。 if(condition) { //conditionがtrueであれば、このステートメントを実行 } else { //conditionがfalseであればこのステートメントを実行 } ***************************** 最初のifステートメントのelse構文の中にもう一つのifステートメントが埋め込まれて いる。 ******************************* Choice is 3 ****************************** for ステートメント このステートメントは指定した回数だけ指定したステートメントを実行する。 initial-expressionにcondition(条件)と比較する式を指定し、increment-expression にインクリメント(またはデクリメント)する値を指定する。 *********************************** 1*2*3*4*5*6*7*8* 8*7*6*5*4*3*2*1* ********************************** while ステートメント whileステートメントは条件がtureの間、コードを繰り返し実行する ******************************* N*o*w* *i*s* * ******************************* for...inステートメント JavaScriptのfor...inステートメントは指定したオブジェクトの全ての要素に対して、 指定したステートメントを実行する。 ******************************* type = Circle height = 10 width = 25 x value= 24 y value = 167 type = Shape2 height = 1 width = 1 x value= 0 y value = 0 type = Circle height = 10 width = 25 x value= 24 y value = 167 ********************************* ユーザーインターフェース****************************************************** JavaScriptには 警告(alert) プロンプト(prompt) 確認(confirm) という3つのユーザーインターフェース要素がある。 ActiveXを利用するとこれらの3つのメソッドは共通したユーザ入力ダイアログを表示 できる。 alert(message) prompt(message, [defoult]) confirm(message,[defoult]) *********************** ************************** 最初に Get Ready というウインドウが表示され Enter a Number という入力ダイアログが表示される。 そこに数字を入力してOKをクリック Pick Another Number? ときいてくるので、Cancelをクリックすると Last item picked was ****** という入力した数字を表示するウインドウが出る。 ******************************************* ****************************************************************************** To be continued..... kg-group@ra2.so-net.or.jp http://www02.so-net.or.jp/~kg-group/ Iichirou Suzuki