指定した数より大きい最初の素数を見つけるユーザー定義関数

Excelで指定した数より大きい最初の素数を見つける

Excelには、素数を直接的に計算する組み込み関数はありませんが、Visual Basic for Applications(VBA)を使用してマクロを作成することで、これを実現することが可能です。

関数のコード


    Function NextPrime(ByVal num As Long) As Long
        Do
            num = num + 1
            If IsPrime(num) Then
                NextPrime = num
                Exit Function
            End If
        Loop
    End Function

    Function IsPrime(ByVal num As Long) As Boolean
        Dim i As Long
        If num < 2 Then
            IsPrime = False
            Exit Function
        ElseIf num = 2 Then
            IsPrime = True
            Exit Function
        ElseIf num Mod 2 = 0 Then
            IsPrime = False
            Exit Function
        End If
        For i = 3 To Sqr(num) Step 2
            If num Mod i = 0 Then
                IsPrime = False
                Exit Function
            End If
        Next i
        IsPrime = True
    End Function
    

関数の使い方

以上のVBAコードをコピーして、ExcelのVBAエディター(Alt + F11キーを押して開く)から標準モジュール(挿入から)に貼り付け、マクロが有効になったワークブックに保存します。

このマクロを保存した後は、`=NextPrime(A1)`のようにExcelのセルに数式を入力することで、A1セルの値より大きい最初の素数を表示できます。ただし、非常に大きな数値に対してこの関数を使用すると計算時間が長くなる可能性があることに注意してください。

まとめ

ExcelのVBAを利用すると、特定の数より大きい最初の素数を求めるなど、Excelの組み込み関数だけでは実現できない高度な計算を行うことが可能になります。この記事を参考に、独自のVBA関数を作成して、Excelの利用範囲を広げてみてください。

コメント