ボス級社内SEのお役立ち技術情報

社内SEのシステム開発について。メインプログラム言語C#

【EXCEL 2013】EXCEL VBAマクロで作成した関数をEXCELシート上の関数として使用する方法

表題の意味分かってもらえるでしょうか?

 

EXCEL VBAマクロで作成した関数」とは、以下赤枠

f:id:HLSE:20180811102221j:plain

EXCEL VBA1

 

EXCELシート上の関数」とは、以下赤枠

f:id:HLSE:20180811102519j:plain

EXCEL VBA2

 

つまり、VBAマクロを使って自作のEXCELシート上の関数」を作るということです。

繰り返し行う作業があればこれはかなりいいEXCEL VBAテクニックになります!

 

手順は簡単です。

サクサクいっちゃいましょう!

手順概要は以下になります。

EXCELマクロ用ファイルを作成する

EXCEL VBA 関数を作成する

③任意のセルにて②で作成した自作関数を指定する

 

EXCELバージョンについて

 私が確認したのは、EXCEL2013です。

おそらくですが、EXCEL2007以降なら使用できる技かと思います。

 

EXCELマクロ用ファイルを作成する

 まずはEXCELを立ち上げましょう。

 

空白のブックを作成してください。

f:id:HLSE:20180811110051j:plain

 

そして、マクロ有効ファイル「.xlsm」で保存してください。

(このファイルはEXCEL2007以降で作成できます)

f:id:HLSE:20180811110203j:plain

 

EXCEL VBA 関数を作成する

 ①で作成したファイルを開いた状態で、「Alt + F11」を押してください。

Microsoft Visual Basic for Application」が起動します。

f:id:HLSE:20180811111051j:plain

 

プロジェクトウィンドウのVBAproject上で右クリックして標準モジュールを作成してください。(今回紹介する機能は標準モジュールでないと実現できません

f:id:HLSE:20180811111131j:plain

 

作成されたModule1を開いてください

f:id:HLSE:20180811111250j:plain

 

開いたModule1に以下のような文字列を入力してください

f:id:HLSE:20180811112225j:plain

 

「SelfMethod」に値をいれるとそれが返り値になります。

 

③任意のセルにて②で作成した自作関数を指定する

 

ではシートから作成した自作関数をしようしてみましょう! 

任意のセルで②で作成した関数を以下の形式で入力してください。

=」 + 「関数名」 + 「()

 例 =SelfMethod()

 

f:id:HLSE:20180811112410j:plain

 

そして、キーボードのENTERをクリックしてみください

VBAで作成した自作関数が実行されたのがわかるかと思います!

f:id:HLSE:20180811112827j:plain

 

 

応用 引数も指定できるよ

 

任意の値を関数に渡すことも可能です。

関数を以下のように変更しましょう!

f:id:HLSE:20180811113418j:plain

 

シート側では以下のような感じで

f:id:HLSE:20180811113518j:plain

 

 

これを使えばルーチンワークもすごく楽になるんじゃないでしょうか。

ふつふつと業務改善のアイデアが沸き上がってきませんか?

 

参考にした書籍

VBAマクロに関しては以下のような書籍で勉強しています。