Microsoft Excelには、SUM、VLOOKUP、LEFTなど多くの組み込み関数があります。Excelをより複雑な作業に使うようになると、存在しない関数が必要になることがあります。そこで登場するのがカスタム関数です!このWikiHowでは、Microsoft Excelで独自の関数を作成する方法を説明します。
知っておくべきこと
- 挿入」メニューから「新規モジュール」を選択して、ユーザー定義関数を作成します。
- FunctionName "を関数のパラメータを示す名前に置き換えて、関数のヘッダーを作成します。
- 関数のコードの最後には、必ず "EndFunction "と書いてください。
1
エクセルのワークブックを開きます。カスタム定義関数を使用するワークブックをダブルクリックし、Excelで開きます。
2
Alt+F11 (Windows) または Fn+# Opt+F11 (Mac) を押します。Visual Basic Editor が開きます。
3
Insert メニューをクリックし、New Module を選択します。エディタの右パネルにモジュール・ウィンドウが開きます。
- 新しいモジュールを追加せずに、ワークシート自体にユーザー定義関数を作成することもできますが、その場合、同じワークブックの他のワークシートで関数を使用することができなくなります。
4
関数のヘッダーを作成します。最初の行は、関数に名前を付け、範囲を定義する場所です。 FunctionName "を、カスタム関数に付けたい名前に置き換えてください。関数にはいくつでもパラメータを指定することができ、その型はExcelの基本的なデータ型やRangeのようなオブジェクト型のどれでもかまいません:
関数 FunctionName (param1 As type1, param2 As type2 ) As return Type
- パラメータは、関数が作用する「オペランド」と考えることができます。例えば、SIN(45)を使って45度の正弦を計算する場合、45がパラメータとなります。そして、関数のコードはその値を使って別の計算を行い、その結果を返します。
5
関数のコードを追加します。パラメータによって提供された値を使用し、結果を関数名に代入し、"End Function "で関数を閉じることを確認してください。VBAや他の言語でプログラミングを学ぶには、ある程度の時間と詳細なチュートリアルが必要です。しかし、関数は通常小さなコードブロックしか持たず、言語の機能をほとんど使いません。いくつかの便利な要素があります:
- Ifブロックは、条件が満たされた場合にのみコードの一部を実行することができます。Ifコードブロックの要素に注目してください:IF 条件 THEN コード ELSE コード END IF。Else キーワードとコードの 2 番目の部分は省略可能です:Function Course Result(grade As Integer) As String If grade >= 5 Then CourseResult = "Approved" Else CourseResult = "Rejected" End If End Function
- DoブロックはWhileまたはUntil条件が満たされるまでコードの一部を実行します。下のコード例では、DOコードLOOP WHILE/UNTIL条件に注目してください。また、変数が宣言されている2行目にも注目してください。変数をコードに追加することで、後で使用することができます。変数はコード内部で一時的な値として機能します。BOOLEANは、TRUEとFALSEの値のみを許容するデータ型です。この方法で素数かどうかを判定するのは最適ではないが、コードを読みやすくするためにこのようにした。関数 IsPrime(value As Integer) As Boolean Dim i As Integer i = 2 IsPrime = True Do If value / i = Int(value / i) Then IsPrime = False End If i = i + 1 Loop While i < value And IsPrime = True End Function
- Forブロックはコードの一部を指定された回数実行する。次の例では、FOR 変数 = 下限値 TO 上限値のコード NEXT の要素を見てみましょう。また、If文にElseIf要素が追加されているのがわかります。さらに、関数と変数resultをLongとして宣言しています。Longデータ型では、Integerよりもはるかに大きな値を指定できます:Public Function Factorial(value As Integer) As Long Dim result As Long Dim i As Integer If value = 0 Then result = 1 ElseIf value = 1 Then result = 1 Else result = 1 For i = 1 To value result = result * i Next End If Factorial = result End Function
6
Visual Basicエディターを閉じる。関数を作成したら、ウィンドウを閉じてワークブックに戻ります。これで、ユーザー定義関数を使い始めることができます。
7
関数を入力します。まず、関数を入力するセルをクリックします。次に、エクセルの上部にある関数バー(左側にfxと表示されているもの)をクリックし、=FUNCTIONNAME()と入力します。FUNCTIONNAMEは、カスタム関数に割り当てた名前に置き換えてください。
- ユーザー定義式は、数式の挿入ウィザードの「ユーザー定義」カテゴリにもあります。
8
括弧の中にパラメータを入力します。例えば、=NumberToLetters(A4)と入力します。パラメータには3つのタイプがあります:
- セル式に直接入力された定数値。この場合、文字列は引用符で囲む必要がある。
- B6のようなセル参照、またはA1:C3のような範囲参照。パラメータはRangeデータ型でなければならない。
- 関数の中にネストされた他の関数。関数は他の関数の中に入れ子にすることもできます。例: =Factorial(MAX(D6:D8)).
9
Enter キーまたは Return キーを押して、関数を実行します。選択したセルに結果が表示されます。
コメント
最新を表示する
NG表示方式
NGID一覧