ユーザー定義関数で文字列の長さを揃える方法
はじめに
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関数を使うことで簡単に実現できます。ぜひ活用して、見やすく整ったデータを作成しましょう。
コメント