Microsoft Excelには、SUM、VLOOKUP、LEFTなど多くの組み込み関数があります。Excelをより複雑な作業に使うようになると、存在しない関数が必要になることがあります。そこで登場するのがカスタム関数です!このWikiHowでは、Microsoft Excelで独自の関数を作成する方法を説明します。
知っておくべきこと
- 挿入」メニューから「新規モジュール」を選択して、ユーザー定義関数を作成します。
- FunctionName "を関数のパラメータを示す名前に置き換えて、関数のヘッダーを作成します。
- 関数のコードの最後には、必ず "EndFunction "と書いてください。
- 新しいモジュールを追加せずに、ワークシート自体にユーザー定義関数を作成することもできますが、その場合、同じワークブックの他のワークシートで関数を使用することができなくなります。
- パラメータは、関数が作用する「オペランド」と考えることができます。例えば、SIN(45)を使って45度の正弦を計算する場合、45がパラメータとなります。そして、関数のコードはその値を使って別の計算を行い、その結果を返します。
- 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
- ユーザー定義式は、数式の挿入ウィザードの「ユーザー定義」カテゴリにもあります。
- セル式に直接入力された定数値。この場合、文字列は引用符で囲む必要がある。
- B6のようなセル参照、またはA1:C3のような範囲参照。パラメータはRangeデータ型でなければならない。
- 関数の中にネストされた他の関数。関数は他の関数の中に入れ子にすることもできます。例: =Factorial(MAX(D6:D8)).
コメント
最新を表示する
NG表示方式
NGID一覧