Excelでユーザー定義関数を作成する方法

ページ名:Excelでユーザー定義関数を作成する方法

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 キーを押して、関数を実行します。選択したセルに結果が表示されます。
  • この記事は、CC BY-NC-SAの下で公開された「 How to Create a User Defined Function in Excel 」を修正して作成されました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧