Excel VBAで列番号を列文字に変換する3つの方法
VBAマクロは、Excelであらゆる操作を実行する際に最も効果的で、迅速かつ安全な方法です。この記事では、VBAを使用してExcelで列番号を列文字(A、B、C…)に変換する方法をご紹介します。
練習用ワークブックのダウンロード
無料の練習用Excelワークブックはこちらからダウンロードできます。
VBAで列番号を列文字に変換する3つの方法
このセクションでは、特定の列番号を列文字に変換する方法、ユーザー定義関数(UDF)を作成して変換する方法、そしてユーザーが入力した列番号を列文字に変換する方法の3つを、VBAを使って学びます。
1. 特定の列番号を列文字に変換するVBA
VBAで特定の列番号を列文字に変換する手順は以下の通りです。
手順:
- キーボードでAlt + F11を押すか、リボンの開発 → Visual BasicタブからVisual Basic Editor(VBE)を開きます。

- 表示されたコードウィンドウで、メニューバーから挿入 → 標準モジュールをクリックします。

- 以下のコードをコピーして、コードウィンドウに貼り付けます。
Sub ColNumToLetter()
Dim ColNumber As Long
Dim ColLetter As String
'Input Column Number
ColNumber = 200
'Convert To Column Letter
ColLetter = Split(Cells(1, ColNumber).Address, "$")(1)
'Display Result
MsgBox "Column " & ColNumber & " = Column " & ColLetter
End Sub
これでコードを実行する準備が整いました。

このコードは、列番号200を対応する列文字に変換します。
- キーボードのF5キーを押すか、メニューバーから実行 → Sub/ユーザーフォームの実行を選択してマクロを実行します。サブメニューバーの小さな再生アイコンをクリックしても実行できます。

Microsoft Excelのポップアップメッセージボックスが表示され、コード内に入力した列番号(例:200)に対応する列文字(GR)が確認できます。

関連記事:Excel VBAで列番号を指定してRangeを使用する方法(4選)
あわせて読みたい記事
- 【解決済み】Excelで列番号が数字で表示される場合の対処法(2つの解決策)
- Excelで列文字を番号に変換する方法(4選)
2. ユーザー定義関数(UDF)で列番号を列文字に変換するVBA
UDF(ユーザー定義関数)を使って列番号を列文字に変換する手順は以下の通りです。
手順:
- 先ほどと同じように、開発タブからVisual Basic Editorを開き、コードウィンドウに標準モジュールを挿入します。
- コードウィンドウに、以下のコードをコピーして貼り付けます。
Public Function NumToLtr(ColNum)
NumToLtr = Split(Cells(1, ColNum).Address, "$")(1)
End Function

これはVBAプログラムとして実行するSubプロシージャではなく、ユーザー定義関数(UDF)を作成するものです。そのため、コードを書いた後は、メニューバーの実行ボタンを押す代わりに「保存」をクリックします。
- 次に、対象のワークシートに戻り、先ほどVBAコードで作成した関数(コード1行目のNumToLtr関数)を入力します。NumToLtr関数の括弧内には、列文字に変換したいセル参照を渡します(ここではセルB5を渡しています)。
最終的な数式は次のようになります。
=NumToLtr(B5)
- Enterキーを押します。

データセット内の列番号(1)に対応する列文字(A)が表示されます。
- 次に、フィルハンドルを使って下方向にドラッグし、残りのセルにもUDFを適用して列文字に変換します。

GoToステートメントを使う方法
上記の手順は、GoToステートメントを使っても実現できます。
- GoToステートメントで列番号を列文字に変換するVBAコードは以下の通りです。
Public Function Num_Letter(ByVal iColNum As Integer) As String
Dim SLetter As String
On Error GoTo iError
Num_Letter = Left(Cells(1, iColNum).Address(False, False), _
Len(Cells(1, iColNum).Address(False, False)) - 1)
Exit Function
iError:
Call MsgBox(Err.Number & " - " & Err.Description)
End Function

- 上記と同様に、データセット内でUDFを呼び出し、引数としてセル参照を渡してEnterキーを押し、下方向にドラッグすることで、GoToステートメントを使った列番号から列文字への変換が完了します。

Do-Whileループを使う方法
Do-Whileループも、VBAで列番号を列文字に変換するもう一つの方法です。
- Do-Whileループで列番号を列文字に変換するVBAコードは以下の通りです。
Function NumberToLetter(iCol As Long) As String
Dim a As Long
Dim b As Long
a = iCol
NumberToLetter = ""
Do While iCol > 0
a = Int((iCol - 1) / 26)
b = (iCol - 1) Mod 26
NumberToLetter = Chr(b + 65) & NumberToLetter
iCol = a
Loop
End Function

- 同様に、データセット内でUDFを呼び出し、引数としてセル参照を渡してEnterキーを押し、下方向にドラッグすれば、Do-Whileループによる列番号から列文字への変換が完了します。

関連記事:Excel VBAで行番号と列番号からRangeを設定する方法(3つの例)
3. ユーザー入力から列番号を列文字に変換するVBA
ユーザーが入力した列番号を列文字に変換する手順は以下の通りです。
手順:
- これまでと同じように、開発タブからVisual Basic Editorを開き、コードウィンドウに標準モジュールを挿入します。
- コードウィンドウに、以下のコードをコピーして貼り付けます。
Sub GetNumberFromUser()
Dim ColNumber As Long
Dim ColLetter As String
'User Input: Column Number
ColNumber = InputBox("Please Enter a Column Number")
'Convert the user-entered Column Number To Column Letter
ColLetter = Split(Cells(1, ColNumber).Address, "$")(1)
'Display the Result
MsgBox "Column Number: " & ColNumber & _
" = Column Letter: " & ColLetter
End Sub
これでコードを実行する準備が整いました。

- マクロを実行します。
- 列番号の入力を求めるMicrosoft Excelのポップアップメッセージボックスが表示されます。変換したい列番号をボックス内に入力し、OKを押します。

入力した列番号(例:200)に対応する列文字(GR)に変換された結果が表示されます。

関連記事:Excel VBAで列番号を指定してRangeを使用する方法(4選)
まとめ
この記事では、VBAを使ってExcelで列番号を列文字に変換する方法をご紹介しました。本記事が皆さんのお役に立てば幸いです。このトピックについてご質問がある場合は、お気軽にお尋ねください。
関連記事
- Excelで列名をABCから123に変更する方法
- Excelで列文字を番号に変換する方法(4選)
- Excelで行番号と列番号を使ってセルを参照する方法(4選)
- Excel VBAで複数の列を選択する方法(3選)
- Excelで一致する値の列番号を返す方法(5つの便利な方法)
-
Excelで列データを区切り文字付きテキストに変換する5つの方法
Excelのシートで、縦方向(列)に入力されたリストを横並びのテキストとして整理したい場面はよくあります。その際、各項目をつなぐために区切り文字が必要になります。最も一般的なのはカンマ(,)ですが、セミコロンなどを使う場合もあります。残念ながら、Excelには列を区切り文字付きテキストへ一発で変換する専用機能は用意されていません。そこで本記事では、5つの簡単な方法で列データを区切り文字付きテキストに変換する手順を詳しく解説します。 Excelで列を区切り文字付きテキストに変換する5つの方法 この記事では、以下の5つのアプローチを順番に紹介します。 TEXTJOIN関数を使う方法 CONCAT
-
XMLをExcelテーブルに変換する3つの簡単な方法【Microsoft 365対応】
業務やデータ処理の中で、XMLファイルをExcelのテーブルに変換したい場面は少なくありません。この記事では、Microsoft 365版のExcelを使用して、XMLをExcelテーブルへ変換する具体的な手順を、わかりやすく解説します。 練習用ワークブックはこちらからダウンロードできます。 XMLファイルとは? XML(Extensible Markup Language:拡張可能なマークアップ言語)は、さまざまなアプリケーションやシステム間でデータを読み取り可能な形式で保存・交換するためのファイル形式です。データの保存や転送を主な目的としており、HTMLと似た構造を持っていますが、タグがあ