Excelで標準モジュールにユーザー定義関数を作成するには?

Excelのワークシート上から呼び出して使えるユーザー定義関数を作成するには、標準モジュールにVBAでプログラムを書く必要があります。

前回までは、ダウンロードしたファイルを使用していました。理由は、最初にユーザー定義関数が便利なことを、実感していただきたかったからです。

そのため順番が逆になってしまいましたが、標準モジュールにユーザー定義関数を作成する方法について説明します。

今回はダウンロードしたExcelのファイル「gankin.xls」を使わずに、新たにファイルを作成します。


【1】新たにExcelのファイル「gankin.xls」を作成します。

excel-vba-26.gif


【2】新たに作成したファイル「gankin.xls」を開きます。

*ダウンロードしたファイルではないので、注意してください。


【3】「gankin.xls」が開きました。

excel-vba-27.gif

もちろんこの状態では、通常のExcelファイル(Book)と変わりません。


【4】VBEを起動します。

*「Altキー」+「F11キー」


【5】「gankin.xls」のVBE画面が表示されました。

excel-vba-28.gif

この画面を使って、プログラミングを行ないます。

VBEとは、Visual Basic Editor の略で、統合開発環境のことです。VBEは Microsoft社の Office製品で、共通して使えます。


【6】プロジェクトエクスプローラには、まだ標準モジュールがありません。

excel-vba-29.gif


【7】プロジェクトエクスプローラ内をマウスで右クリックし、コンテキストメニューが表示されたら、「挿入 → 標準モジュール」を選択します。

excel-vba-30.gif

プロジェクトエクスプローラ内なら、どこでもかまいません。

またVBEのメニューからでも、標準モジュールが作成できます。

・「挿入 → 標準モジュール」
excel-vba-31.gif

結果は同じなので、好きな方法を覚えてください。


【8】プロジェクトエクスプローラ内に「Module1」という標準モジュールが作成されました。

excel-vba-32.gif

標準モジュールは複数作成できるので、階層構造になっている点に注目してください。

またVBEの画面右側には、「コードウィンドウ」が表示されます。

これは「Module1」に対してのコードウィンドウです。今、プロジェクトエクスプローラでは、「Module1」が選択されているはずです。

ここにVBAでユーザー定義関数を作成します。

標準モジュールとは、名前の通り、標準のプログラムのことです。

標準モジュールに作成したプログラムは、他のプロシージャやExcelのワークシートから、共通して使うことができます。


【9】コードウィンドウに「Option Explicit」が表示されていますか?

excel-vba-33.gif

もし表示されていない場合は、加えてください。

最初から表示されるかどうかは、Excelの設定によります。加えれば問題ありません。

Option Explicitは、変数の宣言を強制するためのものです。

この1行を加えると、プログラムの中で変数を使う時には、必ず宣言が必要になります。

変数を宣言することで、バグ(誤り)の入り込む余地が減りますから、必ず加えるようにしてください。


【10】以下の図のように、VBAプログラムを入力してください。

excel-vba-34.gif


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】ここまでの作業を「保存」しましょう。

excel-vba-35.gif

VBEで行なった作業は、VBE側で保存します。Excel側の保存とは別なので、注意してください。

以上でプログラムは完成です。


【12】あとはダウンロードしたファイルの時と同様に、Excelのワークシート上で、動作確認してください。

セルに以下のような計算式を入力してください。

・例

=calcGankin(1000,0.5)


=calcGankin(5000,1.2)


=calcGankin(80000,0.85)



【ワンポイント】
Excelのファイルを一度閉じ、再度開く時には、既にプログラムを書いたので、メッセージが表示されるようになります。

excel-vba-40.gif

このプログラム(マクロ)は、あなた自身で作成したものなので安心です。「マクロを有効にする」を選択してください。

スポンサードリンク

スポンサードリンク






Excel VBA 初心者入門講座 TOPへ