VBAで 日本語関数を使って 楽々プログラミングしよう

Pocket

VBAで 日本語関数を使って 楽々プログラミングしよう
VBAで日本語関数を使って楽々プログラミングしよう

序文

はい。

今日は、VBAの「関数」について解説します。

高校の頃習った「関数」、覚えていますか?

y = f(x) とかいう、それです!

xという引数に対し、f(x)という計算を行い、yに代入する。

y = f(x)
y = f(x)

というような、計算結果を返値としてyに代入する計算式f(x)を、「関数」と言っています。

VBAでも同じく関数が使用できます。

さらにさらに、「エクセル関数日本語化」では、f(x)や、cos(x)、sin(x)など英語表記の関数だけではなく、以下のような日本語表記の関数も使用できます。

y = F_商(10,3)
y = F_商(10,3)

上式は、10を3で割った時の商を計算し、返値として商を返し、yに代入しています。

「エクセル関数日本語化」では、F_で始まる日本語関数が100個ほど用意されていますので、なかなか便利に使えます。

どのような関数があるか知りたい場合は、「F_」まで入力して、CTRL+スペースキーを押下することで、コード補完を行い、F_で始まる日本語関数の一覧表示を見ることができます。

今回は、日本語関数のいくつかを紹介致します。

日本語関数がどのくらいの利便性があるかをこのページでご確認ください。

それでは、いってみましょう!

F_コサイン度

F_コサイン度
F_コサイン度

まずは、「F_コサイン度」関数です。

「F_コサイン」関数もありますが、こちらは、都合上、弧度法(ラジアン)での計算式になっています。

皆さんがなじみのある度数法でのコサインの計算には、「F_コサイン度」を使用します。

また、これは、「F_サイン度」「F_タンジェント度」でも同様です。

まずは、「F_コサイン度」の計算結果を表示するために、「g_道具.表示」サブルーチンを使用しますので、入力してきます。

手順はいつもと同じで、「g_」まで入力してからCTRL+スペースキーを押下してコード補完し「g_道具」にします。

その後、「.(ピリオド)」を入力し、コード補完候補の中から「表示」を選択し、TABキーを押下してコード補完を完了します。

「g_道具.表示」サブルーチン
「g_道具.表示」サブルーチン

次に、「f_」と入力し、再びCTRL+スペースキーを押下し、コード補完を行います。

なお、この際、「f_」で始まる関数は100個ほどありますので、コード補完リストが大量なリストになります。

この際、「f_コ」まで入力して、CTRL+スペースキーを押下すると、「コ」の分までリストが絞り込まれて表示されます。

このような応用もできますので、ぜひ活用されてください。

「F_コサイン度」のコード補完
「F_コサイン度」のコード補完
「F_コサイン度」のコードの完成
「F_コサイン度」のコードの完成

「F_コサイン度」のコードが完成しました。

上図のようにいかない場合は、以下のコードをコピペしてください。

それでは、実際に実行してみましょう。

「テストコード」サブルーチンを実行するには、まず、カーソルを、「テストコード」サブルーチン内に置きます。

ツールバー上の「Sub/ユーザーフォームの実行(F5)」ボタン
ツールバー上の「Sub/ユーザーフォームの実行(F5)」ボタン

そして、F5キーを押下するか、ツールバー上の「Sub/ユーザーフォームの実行(F5)」ボタンを押下します。

実行結果
実行結果

実行結果は、上図のようになります。

cos(60) = 1/2

という結果になりました。

F_商

F_商
F_商

次に、「F_商」関数を取り扱ってみましょう。

「F_商」関数はある数を割った商を求める関数です。

第一引数には、割る対象になる数を指定します。

第二引数には、割る単位の数を指定します。

ここでは割る対象の数を10、割る単位の数を3にします。

コードは以下のようになります。

「F_商(10,3)」のコード
「F_商(10,3)」のコード

入力が手間であれば、以下のコードからコピペしてください。

実行結果
実行結果

実行結果は、上図のようになります。

10を3で割った際の商は3ですね。

F_数ヶ月後

F_数ヶ月後
F_数ヶ月後

次に、現在の日時から2ヶ月後の日付を求めてみましょう。

このように、一からプログラムを組むと大変そうなプログラムも、あらかじめ関数として使えるようになっています。

「F_日付化」関数
「F_日付化」関数

まず、「F_日付化」関数を置きます。

というのも、VBAは日付を日付としては扱わず、整数部を日数、小数部を秒数とした、「日付シリアル」という形式で取り扱っているからです。

そのため、VBAで扱っている日付をそのまま表示すると、単なる数値が表示されてしまいます。

それを避けるために、「F_日付化」関数を用いて、通常の日付に戻しています。

「F_数ヶ月後」関数
「F_数ヶ月後」関数

次に、「F_数ヶ月後」関数を置きます。

「F_数ヶ月後」関数の第一引数は、基準となる日付を指定します。

第二引数は何ヶ月後の日付を計算するのか、その月数を指定します。

「F_今」関数
「F_今」関数

「F_数ヶ月後」関数の第一引数には、「F_今」関数を指定しています。

「F_今」関数は、現在の日時を返す関数です。

「F_数ヶ月後」関数の第二引数には、「2」と2ヶ月後を指定しています。

これで、コードは完成です。

上図のように行かない場合は、以下のコードをコピペしてください。

それでは、実行してみましょう。

実行結果
実行結果

無事2ヶ月後の日付が計算され、実行結果となっています。

まとめ

お疲れ様でした。

ここまで読んで頂いて、ありがとうございました。

今日の学びを以下にまとめます。

  • エクセルVBAでは数学と同様な「関数」を取り扱える。
  • 「エクセルVBA日本語化」には、「F_」から始まる100個ほどの日本語関数がある。
  • 日本語の関数は、「F_」まで入力してCTRL+スペースキーを押下してコード補完すると、関数のリストを表示できる。
  • 関数を使うと、複雑なプログラムを一から作らなくても、簡単に作れるようになる。

関数の集合はいわゆる「ライブラリ」ともいわれる便利ツールの名称です。

「ライブラリ」は、VBAで開発していくなかで、開発効率を高める大事な存在です。

皆さんも、ぜひ、活用されてください。

それではー またー (^_^)/

The following two tabs change content below.
KaBA@フリーランス修行中

KaBA@フリーランス修行中

こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。 このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。