第9回 - コーディング (変数と定数)

[ 目次へ | 第8回へ | 第10回へ ]

今回の目標
既に作成している仕様に基づいてコードを記述します。
長くなるので2回に分けます。今回は変数と定数の定義についてです。

前回、ActiveX Control Padで電卓アプリケーションの画面のデザインをしました。まだ作成していない方は、まず第8回をご覧ください。

続いて、第5回で作成した仕様をもう一度確認してみましょう。

変数 一つ目の数値(演算子の前に入力した数値)を覚えておく変数
二つ目の数値(演算子の後に入力した数値)を覚えておく変数
演算子(二つ目の数値の前)を覚えておく変数
直前に押されたキーの種類を覚えておく変数
定数 演算子の種類を表す定数
直前に押されたキーの種類を表す定数
プロシージャ 数値が押された時の処理
演算子が押された時の処理
=が押された時の処理
C(クリアキー)が押された時の処理
CE(クリアエントリーキー)が押された時の処理

プロシージャの概要については、第5回を参照してください。


まずは変数と定数を用意することにします。既に書いたようにVBScriptでは、定数という概念がありませんので、変数を代用することになります。よって、上に書いた変数・定数はすべて同じ要領で作成します。なお、プログラミングの世界では「変数を定義する」などのように「定義」といいます

変数にはそれぞれ以下のような名前をつけることにします。もちろん自由な名前をつけてもかまいませんが、今回は以下のようにつけることにします。なお、CPadの操作方法はすぐ後に説明します。

一つ目の数値 dblPrevNumber
二つ目の数値 dblCurrentNumber
演算子 intPrevOperation
直前に押されたキー intLastKey

それぞれの変数の頭に"dbl"や"int"とついていますが、これは変数の型をあらわしています。それぞれ、"dbl"は小数を、"int"は整数を記憶するための変数であることを意味します。
VBScriptでは実際には変数の型はVariant型だけですが、プログラムを書く側(つまり人間)が変数の役割を理解しやすいように、整数ならば"int"、文字列ならば"str"などを変数の頭に付けるといいでしょう。これらの接頭辞の詳細は、マイクロソフトのこちらのページを参照してください。リファレンスページに接頭辞の一覧があります。参考にしてください。ただし自分なりのルールがあればいいので、そのページの内容を気にしすぎることはないと思います。

続いて定数です。定数は次の通りです。

定数の分類 意味 定数
演算子の種類 記憶している演算子なし OP_NO 0
= OP_EQUAL 1
+ OP_PLUS 2
- OP_MINUS 2
* OP_MULTIPLE 4
/ OP_DEVIDE 5
エラー OP_ERROR -1
直前のキーの種類 数値 KEY_NUMBER 1
= KEY_EQUAL 2
その他 KEY_OTHER 0

CPadで、変数・定数を定義する方法は以下の通りです。ここでは、dblPrevNumberを定義してみましょう。

まず、calc.alx(電卓の画面デザインウィンドウ)を表示します。HTMLファイルの「<OBJECT CLASSID=」で始まっている行を探して、その左側にあるアイコンをクリックすれば表示されます。その状態で、CPadのメニューで「Tools/Script Wizard」を選んでください(ツールバーから選択してもかまいません)。
Script Wizardが開いたら、右上の「Insert Actions」というペインで右クリックしてください。このペインの中であれば、どこでもかまいません。メニューが出てきますから、「New Global Variable」を選びます。小さなダイアログボックスが出てきますから、ここで、dblPrebNumberと入力して、OKボタンを押します。これで変数が一つ定義できました。

同じようにすべての変数・定数を入力してください。なお定数は、上の表の「定数」という項目(OP_NOやKEY_NUMBERなど)を入力してください。「値」の方は後で指定します。まずは、すべての変数と定数を定義してください。
なお、Script WizardのCancelボタンを押すと、それまでの操作がキャンセルされて、操作を始める前の状態に戻ってしまいますから注意してください。Script Wizardを閉じるには必ずOKボタンを押すようにしてください。


全て済んだら定数値の指定をします。定数値の指定はVBScriptのソースコードを実際に覗く必要があるので、せっかくですから今までの操作がVBScriptのソースにどのように反映されているのかもちょっとだけ見てみましょう。
もしまだScript Wizardを開いたままであれば、OKボタンを押して閉じてください。
calc.alxで右クリックして、メニューで「View Source Code」を選びます。「Layoutを閉じるか」と聞いてきますが、OKを押してください。メモ帳が開いて、テキストが表示されます。これが、calc.alxのソースファイルです。

「<SCRIPT LANGUAGE="VBScript">」と「</SCRIPT>」で挟まれた部分がVBScriptで記述されたソースコードです。「<DIV ID=」で始まる部分もあると思いますが、これは画面デザインに関係した部分ですから編集しないようにしてください。ここを編集すると、せっかく決めた画面のデザインが崩れてしまいます。
変数・定数の定義の際の操作によっては、「<SCRIPT LANGUAGE="VBScript">」で始まる部分が複数見つかるかもしれません。これは、Script Wizardを開くたびに新しくブロックが追加されるからで、一つにまとまっていても、いくつかに別れていても、動作に変わりはありません。しかし、見た目は一つにまとまっている方がきれいですし、あとで見直した時もわかりやすいので、一つにまとめることをすすめます。また、変数・定数の間に空の行が入っていると思いますが、ソースコードの行数が長くなるだけなので削除してかまいません。


定数値の指定は、このメモ帳のウィンドウ内で行います。このファイルは普通のテキストファイルなので、メモ帳が使いにくいと思ったら別のテキストエディタを使ってもかまいません。
第3回で覚えたように、VBScriptでは変数(定数)の定義は、「Dim 変数名」のようになります。確かに今回のソースファイルでも同じような行が並んでいます。定数値は、定数の定義行の後に「定数 = 値」のように記述します。

dim OP_NO
dim OP_EQUAL
dim OP_PLUS
dim OP_MINUS
dim OP_MULTIPLE
dim OP_DEVIDE
dim OP_ERROR

dim KEY_NUMBER
dim KEY_EQUAL
dim KEY_OTHER

OP_NO = 0
OP_EQUAL = 1
OP_PLUS = 2
OP_MINUS = 3
OP_MULTIPLE = 4
OP_DEVIDE = 5
OP_ERROR = -1

KEY_NUMBER = 1
KEY_EQUAL = 2
KEY_OTHER = 0

変数・定数の定義は、以上で終わりです。以上のコーディングを済ませたソースコードがこちらのページにあります。実際のコーディングはこちらをご覧ください。
次回は、プロシージャの定義をします。

[ 目次へ | 第8回へ | 第10回へ ]


メール 瀬尾佳隆 (webmaster@seosoft.net)