ＶＢＡ （Ｖｉｓｕａｌ ＢＡＳＩＣ ｆｏｒ Ａｐｐｌｉｃａｔｉｏｎｓ）で、Body Mass Index 判定プログラムを作る。
ユーザーフォームを用いたプログラムの作成
Graphic User Interface（ GUI ） の利用法
構造化プログラムの作成
複雑なプログラムを、関数に分割して作る方法

ＶＢＡ（Ｖｉｓｕａｌ ＢＡＳＩＣ ｆｏｒ Ａｐｐｌｉｃａｔｉｏｎｓ）のテキストは、たくさんあります。興味があればさらに勉強を進めて下さい。

Excel でマクロを使えるようにするためにはセキュリティの変更作業が必要。

左上の丸いボタンをクリックして下に表示されるＥｘｃｅｌのオプションをクリックする。

セキュリティセンター をクリックし、セキュリティセンターの設定をクリック。

マクロの設定 をクリックし、すべてのマクロを有効にする をクリック。
ＯＫボタンをクリック。

マクロを有効にする設定をしたら、Excel をいちど 終了させて、再度 Excel を起動する。
これで、マクロを使えるようになる。

メニューバーの空白領域を右クリックするとＶｉｓｕａｌ Ｂａｓｉｃ メニューバー表示を選択する
リストがでるので、Ｖｉｓｕａｌ Ｂａｓｉｃ をチェックする。

これをクリックすると VBA が出る。

Ｏｆｉｉｃｅ２００７では、表示タグをクリックして、マクロ のアイコン が表示されれば、ＶＢＡが使える状態。

マクロ のアイコンをクリック。

マクロ の名前を入力、選択するダイアログが表示される。

ここにマクロ の名前を入力。
例として、test と入力。

マクロ の名前を入力すると、作成ボタンが 選択可能になるので、クリックする。

挿入 － ユーザーフォーム を選択

ユーザーフォームと、ツールボックスが出現。
プロジェクトウィンドウにも、フォーム － UserForm 1 が追加される。

ツールボックスが表示されない場合は、フォーム上を左クリック
または、表示 － ツールボックス を選択、プロパティウィンドウで UserForm1 を選択して、（プロジェクトウィンドウで UserForm1をクリック）
BackColor - パレット を開くと、フォームの色が選択できる。

フォーム辺縁の □ マークをドラッグするとユーザーフォームのサイズを変更できる。

ツールボックスの ラベル（Aの文字が記されている）を左クリックして、マウスの左ボタンを押したままフォームの中に移動させて（ドラッグ）、左ボタンを離す（ドロップ）。 この操作を Ｄｒａｇ＆Ｄｒｏｐ という。

フォームにラベルが付く。

プロパティで Label 1 を選択して、Font の文字を左クリックすると、Label 1 に使う文字のフォント、スタイル、サイズを選択できる。

このボタンをクリック。 好きな字体を選択プロパティで Label 1 を選択して、Caption の文字を左クリックすると、その右側の欄に、Label 1 に表示する文字を入力できる。

ラベル Label ： フォーム上に文字を書く道具（ツール、コントロール）
キャプション Caption : 見出し、表題プロパティ Property : 個々のツールの属性、特性、機能

各ツールには、いろいろなプロパティが用意されている。
適当に選択して気に入ったプロパティを探してください。

このプロパティをいじると、ラベルが浮き上がったり凹んで表示されたりする。

同様の操作で、Labelを２個フォームに追加して（Label 2, Label 3 を UserForm 1 の上に配置）
caption を Height (cm) = , Weight (kg) = と入力。
（日本語でもOK）。

ツールボックスからテキストボックス（ａｂ｜と記されたツール）を、フォームに drag & drop。 位置とサイズを調節して身長と体重を入力する場所に ２個 配置する。
テキストボックスは数や文字を入力したり表示するツール。

ツールボックスからコマンドボタン（四角で表示されたツール）を、フォームに drag & drop。
位置とサイズを調節して適当な場所に 配置する。
コマンドボタンは、プログラムを実行させるツール。

Command Button1 のプロパティ のCaption をクリックして、その右欄に、ボタンに表示する文字（ Ｃａｌｃ ＢＭＩ など ）を記入。

Command Button 1 の下に、BMI の 計算結果を表示するための テキストボックス ( TextBox 3 ) と、ラベル (Label 4) （Caption を BMI = にする）を配置。

Command Button 1 をダブルクリックする。
プログラムを記入するウィンドウが出現する。

CommandButton1 がクリックされたときに実行するプログラムをここに書く。

BMI の計算式をプログラムで記述する。
TextBox1の数字を変数ｈに代入する式は、
h = TextBox1.text
TextBox3 に BMI の数字を代入する式は、
TextBox3.text = BMI

プログラムの実行。三角印のボタンをクリックして、身長、体重を入力し、Calc BMI ボタンをクリック。
プログラムの終了は、四角印のボタンをクリック。

プログラムの保存。Visual Basic のウィンドウ またはExcel のウィンドウの ファイル ー 名前を付けて保存を選択。 エクセル形式で（拡張子が .xls のファイル名で）BMI.xls などの名前にして保存してください。

終了ボタンの追加。Command Button２ をフォームに追加し、プロパティ のCaption を End などと記入。
Command Button２ ダブルクリックして、プログラムに Endを記入。プログラムを実行して終了ボタンが作動することを確認して下さい。

BMI の 判定結果を表示するプログラムを追加。
フォームにテキストボックス（TextBox4）を追加。

Calc BMI ボタンをダブルクリックして、If 文による判定式を記述して、プログラムを実行。

プログラムの実行。まず、プロジェクトでフォーム UserForm1を左クリックし、作成したUserForm1を左クリックしてから三角印のボタンをクリックして、身長、体重を入力。

UserForm1をクリックしてから（フォーカスをあてる、という） （フォームの枠を濃い青にしてから）三角のプログラム実行ボタンを押す。
モジュールコードのウィンドウ枠が濃い青の状態で実行ボタンを押すと calcBMI だけが単独で実行されるのでエラーが生じる。

UserForm1 の Caption を Body Mass Index にしたほうが体裁が良いので、変更する。

calcBMI 関数 の End Sub の下に一行あけてSub judgeBMI と記入して、Enter キーを押す。
自動的に () と End Sub が記述され、関数の体裁になり、モジュールの見出しが、General judgeBMI となる。
共有関数 judgeBMI 関数 の作成を宣言したことになる。
この中に、BMI を判定するコードを 移動させる。

CommandButton1の、BMI を判定するコードを カットして、かわりに judgeBMI と書く。
モジュールコードの中で、カットしたコードをペーストする。
モジュールコードの中のTextBoxをUserForm1!TextBox に書き換える。
プログラムの実行結果が変わらないことを確認して下さい。
共有変数 で宣言された BMI の値が、関数 calcBMI から judgeBMI に渡されていることを理解してください。

肥満度を計算、表示する fatness関数 を追加してください。
フォームに肥満度を表示するTextBox５ を追加して配置してください。

Format() 関数は、数字を文字（string）に変換して、表示桁数を指定する関数。ここでは小数点以下２桁までの表示を指定。
文字と数字はプラス記号で繋げられないため、使用している。

体重を判定する judge_weight 関数 を追加してください。
フォームに 標準体重、判定を表示する TextBox６ と TextBox７ を追加して配置してください。

BMIとは世界共通の肥満度の指標。
BMI=体重(kg)／(身長(m)x身長(m))。
標準は22です。
これが+20%，つまり26.4以上なら立派な「肥満」といえます。
（例）身長170cm, 体重70kgならBMI=70÷1.7÷1.7で約24.2。
標準（最も理想的なBMI値）が22ですから、＋１０％の肥満といえます。

標準（理想）体重の計算方法は？
上記のBMIから算出するのが世界的な標準です。
これは 標準体重＝22x身長(m)x身長(m)で計算できます。
(例)身長170cmなら22x1.7x1.7=約63.6kgが標準体重です。
その他の計算方法で最も日本で使われているのが「ブローカの桂変法」という方法です。
これは 標準体重=(身長(cm)-100)x0.9で計算できます。
(例)身長170cmなら(170-100)x0.9=63kgが標準体重です。
ただ、この方法は身長が低い場合に低値になりすぎるため、身長150cm以下では0.9倍せずに（身長-100)とします。
身長150-160cmの場合は50-54kgの間にあればよいとされています［正確には50+(身長-150)x0.4で計算されます］。