VBでの簡単な計算式、つまり四則演算(加減乗除)は、一般的な算数とほぼ同等である。
足し算:「+」
引き算:「−」
掛け算:「*」
割り算:「/」
という記号を使う。但し上記は見やすくするために全角(日本語)で記述しているが、実際には必ず半角(英語)の記号を使うこと!
四則演算を組み合わせた計算式を書くことも可能。
たとえば、 a + 2 * b - 3
という計算式を書くこともでき、通常の算数と同じように (2*b)が先に計算される。
計算の順序を制御するのに括弧「()」を使うことができる。但し算数の括弧と違うのは、中括弧、大括弧はなく、全て単なる( )を使うことである。
この括弧は何重にもして記述する事ができる。たとえば、
( a + ( ( 2 * b ) - 3 ) ) )
などと書くことも可能である。どのカッコ「(」どどのコッカ「)」が対応するかはじっくり見れば分かるはず。
計算した結果など、利用者に対してシステム(プログラム)がなんらかの情報を提示すべき状況が多々有ります。画面(モニタ)に表示したり、音で表現したり、プリンターから印刷物として提示したりする場合などがありますが、プログラムにおいてこのようなものを「出力」と呼びます。ここではまずモニタ画面内に数値やメッセージなどを表示することを勉強しましょう。
プログラム内で計算させた結果などは通常何らかの変数に代入させておくのが一般的であり、たとえば年齢を求めるプログラムを作成する場合、計算した結果である年齢を「a」という変数に代入しておくとする。しかし、変数はあくまでもコンピュータ内部のもので、利用者からは全くどうなっているのかわからない。そこで、たとえばこの変数「a」の中身を提示してユーザに知らせる必要がある。
VBにおける出力は様々なものが用意されているが、ここではラベル・コントロール(オブジェクト)に対して表示・出力する方法をまず覚えて頂きたい。
つまりまず表示用としてフォームにラベルコントロールを予め配置しておく必要がある。ラベルは最初にフォームに配置すると、Label1という名前のラベルとなる。これらコントロールは複数フォームに置くことができるが、二つ目のラベルはLabel2という名前になる。
詳細は省きますが、ここではオブジェクトの「プロパティ」というものを利用して表示する。
ラベル・コントロールは四角いオブジェクトで表題などを含めた何らかの文字情報を提示する際によく使われる。
ラベルにはたくさんのプロパティ(日本語では属性と呼ばれる)がありますが、その中で表示文字の属性を示すものが「Caption」プロパティである。
具体的な例として、
Label1.Caption = 1
とプログラムして、この命令が実行されると、フォームに置いてあるLabel1ラベルに「1」が表示される。「=」は御存知のとおり代入命令で、右側の結果を左側の変数に代入するという説明をしているが、左側はこのように変数ではなく、プロパティでもよい。プロパティも一種の変数のようなものとして使えると考えてよい。もちろん
という2行のプログラムは「a」という変数に代入済みの「2」がLablel1に表示されることになる。
a = 2
Label1.Caption = a
プログラム中に、特定の値を書いてしまうと、それ専用のプログラムになってします。
例えば、年齢の計算で、生まれた年を「1986」としてプログラムを作ると、1986年に生まれた人しか使えないプログラムになってしまう。
そこで、プログラム実行中に、プログラムの利用者、つまりユーザがその場で数値などを入力できた方がより幅の広いプログラムとなる。
VBでは様々な入力方法があり、教科書では、テキストボックス・コントロールを用いた入力を使用している。が、A班では主に、InputBox()関数を利用することにする。
InputBox()関数は、この関数が実行されると、その際に使っているユーザに対して入力を促し、ユーザが入力した値と置き換わる。
例えば、a = InputBox("message") の場合、下記の図のように「message」と表示された小さなダイアログボックスが表示され、その中の四角に入力できるようになる。
入力した上で「OK」ボタンを押すと、「InputBox()」全体が今入力した値と置き換わるような動作を行う。
よって、もし、ユーザがたまたま「999」という数字を入力したとすれば、「a = 999」と同じことになる。
なお、数字を入力してもらう場合は、「a = Val( InputBox("messages"))」とVal()関数を併用すべきである。
この「messages」部分については、日本語を含めて自由に書いてよく、InputBox関数によって表示されるウィンドウ内に単に表示されるだけである。
よって、例えば「a = Val( InputBox("生まれた年を西暦で入力してね"))」と書けば、実行時に「生まれた年を西暦で入力してね」と表示されたウィンドウが表示されることになる。
教科書では、入力方法として、テキストボックスのテキストプロパティを利用している。
例えば、「a = text1.Text」のように利用している。これは、この文(命令)が実行された際に、Text1という名前のテキストボックスに、入力されている数値などを参照してきて、変数「a」に代入するという方法である。
このようなプログラムの場合、「実行」メニューから開始した後、テキストボックスに適切な数値を入力した上で、コマンドボタンをクリックする必要がある。つまり、テキストボックスを通して入力を得る場合は、その命令が実行された瞬間に指定されたテキストボックスに入力された値を得ることができるわけである。一方、InputBox()関数を利用した入力の場合、この関数が実行された際にユーザに入力を促すことになる。
教科書に出てくる例題などにおいて、このテキストボックスを使った例題は、適宜InputBox()関数を利用するものと置き換えてください。
なお、詳細の説明は省きますが、「Text1.Text」は『Text1という名前のテキストボックス(コントロール)のテキスト・プロパティ』という意味です。