指定された長さで文字列を分割するExcel ユーザー定義関数

 

セットするユーザー定義関数 – 指定された長さで文字列を分割する

Excelには、文字列を操作するための多くの標準関数がありますが、特定の長さで文字列を分割する機能はありません。この記事では、ユーザー定義関数を紹介します。この関数は、指定された長さで文字列を分割し、区切り文字でつなげた新しい文字列を返します。関数名は「SPLITBYLENGTH」とします。

関数のコード

以下のコードをVBAエディタ(ALT+F11キー)から標準モジュールを開き貼り付けてください。

Function SPLITBYLENGTH(textString As String, delimiter As String, ParamArray splitLengths() As Variant) As String
    Dim newText As String
    Dim i As Long
    Dim currentLength As Long
    Dim currentPosition As Long
    
    newText = ""
    currentPosition = 1
    
    For i = LBound(splitLengths) To UBound(splitLengths)
        currentLength = splitLengths(i)
        
        newText = newText & Mid(textString, currentPosition, currentLength) & delimiter
        currentPosition = currentPosition + currentLength
    Next i
    
    ' Add the remaining text
    newText = newText & Mid(textString, currentPosition)
    
    ' Remove last delimiter
    If Len(newText) > 0 Then
        newText = Left(newText, Len(newText) - Len(delimiter))
    End If
    
    SPLITBYLENGTH = newText
End Function

貼り付け後はワークシートに戻ります。

関数の使い方

SPLITBYLENGTH関数の使い方は次のとおりです。

=SPLITBYLENGTH(対象の文字列, 区切り文字, 分割する長さ1, 分割する長さ2, 分割する長さ3, ...)

引数の説明

  • 対象の文字列 – 分割したい文字列を指定します。
  • 区切り文字 – 分割後の文字列をつなぐために使用する区切り文字を指定します。
  • 分割する長さ1, 分割する長さ2, 分割する長さ3, … – 文字列を分割する長さを指定します。複数の長さを指定できます。

使い方の例

例1

次の例では、文字列「987654321987」を3文字と4文字の長さで分割し、ハイフンでつなぎます。

=SPLITBYLENGTH("987654321987", "-", 3, 4)

この式の結果は「987-6543-21987」となります。

例2

次の例では、文字列「abcdefghijklmn」を2文字、3文字、4文字の長さで分割し、スラッシュでつなぎます。

=SPLITBYLENGTH("abcdefghijklmn", "/", 2, 3, 4)

この式の結果は「ab/cde/fghij」となります。

注意点

SPLITBYLENGTH関数はVBAで作成されたユーザー定義関数です。使う前に、VBAエディタの標準モジュールにコードを追加する必要があります。エディタは「開発」タブの「Visual Basic」ボタンをクリックするか、「Alt」+「F11」キーで開くことがでことができます。追加したら、Excelで関数を使うことができます。

まとめ

SPLITBYLENGTH関数は、指定された長さで文字列を分割し、区切り文字でつなげた新しい文字列を返す便利なユーザー定義関数です。標準のExcel関数では実現できないこの操作を、簡単に実現できるようになります。ぜひ、業務などで活用してみてください。

コメント