0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excel でユーザー定義関数を作る際のまとめ

Last updated at Posted at 2021-08-21

はじめに

 Excel でユーザー定義関数を作る際に、よく調べることをまとめました。

参考

 以下の記事が割と詳しい。

引数を受け取る

わりと普通の引数

Function TestMyFunction(myParam As Long) As Long
Function TestMyFunction2(myParam As Single) As Single

セル選択範囲引数

 Range オブジェクトである。

Function TestMyFunction3(selectedRange As Range) As Boolean

@IT:Windows TIPS -- Tips:ユーザー定義関数で任意のセル範囲の値を取得する

Variant で受け取って、期待する型かどうかチェックする

Function TestMyFunction4(myParam As Variant) As Boolean
    If TypeName(myParam) = "Variant/Object/Range" Then ...

VBAのVariant型について|VBA技術解説

返り値

 配列を返すことで、複数のセルに別々の値を格納することができる。

@IT:Windows TIPS -- Tips:Excelのユーザー定義関数で複数の結果値を返す

エラーの出し方

 CVErr()関数でエラーを発生させることができる。CVErr()関数の引数は以下の定数。

定数 表示されるエラー 意味
xlErrNull #NULL! 指定した2つのセルに共通部分がない。
xlErrDiv0 #DIV/0 値が0もしくは空のセルで割られている
xlErrValue #VALUE! 引数の形式が過っている。
xlErrRef #REF! 無効なセルが参照されている
xlErrName #NAME? 利用できない文字列が含まれている。
xlErrNum #NUM! 値の指定に誤りがある。正当な結果が得られない。
xlErrNA #N/A 対象となるデータが存在しない。
Function SampleFunction() As Variant
    SampleFunction = CVErr(xlErrNA)
End Function

関数内にアクションコードを含めると #VALUE! エラーを返せる

関数の情報を登録する

 Workbook_Open イベントにて関数を登録する処理を行うと、ヘルプなども追加できるようだ。

ユーザー定義関数の情報を登録する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?