数字を漢数字に変換する方法
数値を計算ができる数値型のデータとして、漢数字に変更するには、Range【レンジ】オブジェクトのNumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用します。また、数値を文字列に変換して漢数字に変更する場合は、ワークシート関数のText【テキスト】関数を使用します。
NumberFormatLocal【ナンバーフォーマットローカル】プロパティ
数値を計算ができる数値型の漢数字に変更するには、指定したセルやセル範囲の表示形式を取得または、設定するRange【レンジ】オブジェクトのNumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用します。
NumberFormatLocal【ナンバーフォーマットローカル】プロパティの書式と設定値の説明
【設定】
オブジェクト.NumberFormatLocal = 書式
- オブジェクト(必須)
書式を設定するセルやセル範囲をRange【レンジ】オブジェクトで指定します。 - 書式(必須)
漢数字に変換する書式は以下の書式を文字列型(ダブルクオティーションで囲む)で指定します。書式 内容 [DBNum1] 123 → 百二十三 [DBNum1]# 123 → 一ニ三 [DBNum2] 123 → 壱百弐拾参 [DBNum2]# 123 → 壱弐参 G/標準 数字に戻します。
A列の数字を数値型に漢数字に変換するコード例1と解説
Sub 漢数字変換1() Dim セル範囲 As Range Set セル範囲 = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル範囲.NumberFormatLocal = "[DBNum1]" Columns.AutoFit End Sub
書式を変更するセル範囲を格納する変数「セル範囲」をオブジェクト型(Range)で宣言します。
2行目【Set セル範囲 = Range(“A2”, “A” & Cells(Rows.Count, 1).End(xlUp).Row)】
Range【レンジ】プロパティで項目行を除いたA2セルからA列のCells【セルズ】プロパティで参照した1列目のRows.Count【ロウズカウント】プロパティで参照した一番最後のセルからRange【レンジ】オブジェクトのEnd【エンド】プロパティでデータが入力された最終行に移動して、Row【ロウ】プロパティでその行番号を取得し、A2のセルからデータが入力されている最終行のセル、つまり、A列の項目行を除くデータが入力されている範囲を参照し、Set【セット】キーワードを使用してオブジェクト型変数「セル範囲」に代入します。
3行目【セル範囲.NumberFormatLocal = “[DBNum1]”】
A列のデータ範囲が格納されているオブジェクト変数「セル範囲」に対して、NumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用して書式を設定します。
4行目【Columns.AutoFit】
数字を漢数字に変更すると文字幅が増えてセル幅に収まらなくなるので、Range【レンジ】オブジェクトのAuto【オートフィット】メソッドを使用してセルの幅を自動で調整します。幅を調整したい列を表すRange【レンジ】オブジェクトには、すべて列を表すColumns【カラムス】コレクションを指定します。
実行結果
A列の数字を数値型に漢数字に変換するコード例2
Sub 漢数字変換2() Dim セル範囲 As Range Set セル範囲 = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル範囲.NumberFormatLocal = "[DBNum1]#" Columns.AutoFit End Sub
実行結果
A列に数字を数値型に漢数字に変換するコード例3
Sub 漢数字変換3() Dim セル範囲 As Range Set セル範囲 = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル範囲.NumberFormatLocal = "[DBNum2]" Columns.AutoFit End Sub
実行結果
A列の数字を数値型に漢数字に変換するコード例4
Sub 漢数字変換4() Dim セル範囲 As Range Set セル範囲 = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル範囲.NumberFormatLocal = "[DBNum2]#" Columns.AutoFit End Sub
実行結果
A列の漢数字を数値型に戻すコード例4
Sub 数字変換1() Dim セル範囲 As Range Set セル範囲 = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル範囲.NumberFormatLocal = "G/標準" Columns.AutoFit End Sub
実行結果
Text【テキスト】関数
数値を文字列型の漢数字に変更するには、ワークシート関数のText【テキスト】関数を使用します。
Text【テキスト】関数の書式と設定値の説明
オブジェクト.Text(値,表示形式)
- オブジェクト(必須)
ワークシート関数のコンテナ(入れ物)を表すWorksheetFunction【ワークシートファンクション】プロパティで取得したWorksheetFunction【ワークシートファンクション】オブジェクトを指定します。 - 値(必須)
文字列型の指定した表示形式に変更する値を指定します。 - 表示形式(必須)
数値を文字列型の漢数字に変更する場合は以下の表示形式を指定します。書式 内容 [DBNum1] 123 → 百二十三 [DBNum1]# 123 → 一ニ三 [DBNum2] 123 → 壱百弐拾参 [DBNum2]# 123 → 壱弐参 G/標準 数字に戻します。
A列の数字を文字列型に漢数字に変換するコード例
Sub 文字列変換() Dim セル As Range For Each セル In Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row) セル.Value = WorksheetFunction.Text(セル.Value, "[DBNum1]") Next セル Columns.AutoFit End Sub
実行結果
以上で、数字を漢数字に変換する方法についての解説を終了します。ありがとうございました。