Excelのユーザー定義関数で文字列の長さを揃える方法

ユーザー定義関数で文字列の長さを揃える方法

はじめに

Microsoft Excelでは、データを見やすく整えるために、様々な組み込み関数が提供されています。しかし、場合によっては組み込み関数では対応できないケースもあります。そのような場合、VBA(Visual Basic for Applications)を使って、独自のユーザー定義関数を作成することができます。

今回は、文字列を一定の長さの幅の中で右詰めや左詰めに揃えるためのユーザー定義関数の使い方について解説します。これらの関数を使うことで、文字列の見栄えを整えることができます。

この記事では「文字列の右側に指定した文字を埋め込む関数」に「PadStringRight関数」という名称を付けています。

また「文字列の左側に指定した文字を埋め込む関数」に「PadStringLeft関数」という名称を付けています。

PadStringRight関数の使い方

PadStringRight関数は、指定された文字数になるように、文字列の右側に指定した文字を埋め込む関数です。

Function PadStringRight(inputStr As String, totalLength As Long, paddingChar As String) As String
Dim padding As String
padding = String(totalLength - Len(inputStr), paddingChar)
PadStringRight = inputStr & padding
End Function

この関数は、次の3つの引数を受け取ります。

  • inputStr (String): 右詰めに揃えたい文字列
  • totalLength (Long): 文字列の全体の長さ
  • paddingChar (String): 埋めるために使用する文字

PadStringRight関数を使って、次のような例を考えてみましょう。

A1セルに「商品A」という文字列が入力されているとします。この文字列を右詰めに揃え、全体の長さを10文字にし、空白部分を「-」で埋めたい場合、B1セルに次の数式を入力します。

=PadStringRight(A1, 10, "-")

これにより、B1セルには「商品A—–」という文字列が表示されます。

PadStringLeft関数の使い方

PadStringLeft関数は、指定された文字数になるように、文字列の左側に指定した文字を埋め込む関数です。

Function PadStringLeft(inputStr As String, totalLength As Long, paddingChar As String) As String
    Dim padding As String
    padding = String(totalLength - Len(inputStr), paddingChar)
    PadStringLeft = padding & inputStr
End Function

この関数は、次の3つの引数を受け取ります。

  • inputStr (String): 左詰めに揃えたい文字列
  • totalLength (Long): 文字列の全体の長さ
  • paddingChar (String): 埋めるために使用する文字

PadStringLeft関数を使って、次のような例を考えてみましょう。

A1セルに「1000円」という文字列が入力されているとします。この文字列を左詰めに揃え、全体の長さを7文字にし、空白部分を「_」で埋めたい場合、B1セルに次の数式を入力します。

=PadStringLeft(A1, 7, "_")

これにより、B1セルには「___1000円」という文字列が表示されます。

固定幅フォントを使ってさらに見やすくする

PadStringRight関数とPadStringLeft関数を組み合わせることで、より見やすい表を作成することができます。特に固定幅フォント(等幅フォント)を使うことで、文字列が揃った表を簡単に作成できます。

例えば、次のような商品リストがあるとします。

A列 B列
マグロ 600
オオトロ 1100
イカ 500

このリストを見やすく整形するには、C列に次の数式を入力します。

C1: =PadStringRight(A1, 6, "-") & ":" & PadStringLeft(B1, 5, "_") & "円"
C2: =PadStringRight(A2, 6, "-") & ":" & PadStringLeft(B2, 5, "") & "円"
C3: =PadStringRight(A3, 6, "-") & ":" & PadStringLeft(B3, 5, "") & "円"

固定幅フォントを使用すると、C列に以下のような整形されたデータが表示されます。

マグロ---:__600円
オオトロ--:_1100円
イカ----:__500円

このように、PadStringRight関数とPadStringLeft関数を使って、見やすく整形された表を簡単に作成することができます。

まとめ

この記事では、文字列を右詰めと左詰めに整形するためのVBAのユーザー定義関数「PadStringRight」と「PadStringLeft」について解説しました。これらの関数を使って、見やすい表を作成する方法や固定幅フォントを使用した表の整形方法についても説明しました。

Excelに組み込まれている関数だけでは難しい文字列の整形も、PadStringRight関数とPadStringLeft関数を使うことで簡単に実現できます。ぜひ活用して、見やすく整ったデータを作成しましょう。

コメント