前回までは、ダウンロードしたファイルを使用していました。理由は、最初にユーザー定義関数が便利なことを、実感していただきたかったからです。
そのため順番が逆になってしまいましたが、標準モジュールにユーザー定義関数を作成する方法について説明します。
今回はダウンロードしたExcelのファイル「gankin.xls」を使わずに、新たにファイルを作成します。
【1】新たにExcelのファイル「gankin.xls」を作成します。
【2】新たに作成したファイル「gankin.xls」を開きます。
*ダウンロードしたファイルではないので、注意してください。
【3】「gankin.xls」が開きました。
もちろんこの状態では、通常のExcelファイル(Book)と変わりません。
【4】VBEを起動します。
*「Altキー」+「F11キー」
【5】「gankin.xls」のVBE画面が表示されました。
この画面を使って、プログラミングを行ないます。
VBEとは、Visual Basic Editor の略で、統合開発環境のことです。VBEは Microsoft社の Office製品で、共通して使えます。
【6】プロジェクトエクスプローラには、まだ標準モジュールがありません。
【7】プロジェクトエクスプローラ内をマウスで右クリックし、コンテキストメニューが表示されたら、「挿入 → 標準モジュール」を選択します。
プロジェクトエクスプローラ内なら、どこでもかまいません。
またVBEのメニューからでも、標準モジュールが作成できます。
・「挿入 → 標準モジュール」
結果は同じなので、好きな方法を覚えてください。
【8】プロジェクトエクスプローラ内に「Module1」という標準モジュールが作成されました。
標準モジュールは複数作成できるので、階層構造になっている点に注目してください。
またVBEの画面右側には、「コードウィンドウ」が表示されます。
これは「Module1」に対してのコードウィンドウです。今、プロジェクトエクスプローラでは、「Module1」が選択されているはずです。
ここにVBAでユーザー定義関数を作成します。
標準モジュールとは、名前の通り、標準のプログラムのことです。
標準モジュールに作成したプログラムは、他のプロシージャやExcelのワークシートから、共通して使うことができます。
【9】コードウィンドウに「Option Explicit」が表示されていますか?
もし表示されていない場合は、加えてください。
最初から表示されるかどうかは、Excelの設定によります。加えれば問題ありません。
Option Explicitは、変数の宣言を強制するためのものです。
この1行を加えると、プログラムの中で変数を使う時には、必ず宣言が必要になります。
変数を宣言することで、バグ(誤り)の入り込む余地が減りますから、必ず加えるようにしてください。
【10】以下の図のように、VBAプログラムを入力してください。
Public Function calcGankin(risoku As Long, kinri As Single) As Currency
Dim gankin As Currency
Const TAX As Single = 0.2
gankin = risoku / ((kinri / 100) * (1 - TAX))
calcGankin = gankin
End Function
このプログラムは、ダウンロードしたファイルの内容と、全く同じものです。
【11】ここまでの作業を「保存」しましょう。
VBEで行なった作業は、VBE側で保存します。Excel側の保存とは別なので、注意してください。
以上でプログラムは完成です。
【12】あとはダウンロードしたファイルの時と同様に、Excelのワークシート上で、動作確認してください。
セルに以下のような計算式を入力してください。
・例
=calcGankin(1000,0.5)
=calcGankin(5000,1.2)
=calcGankin(80000,0.85)
【ワンポイント】
Excelのファイルを一度閉じ、再度開く時には、既にプログラムを書いたので、メッセージが表示されるようになります。
このプログラム(マクロ)は、あなた自身で作成したものなので安心です。「マクロを有効にする」を選択してください。