Excel で列番号を英文字に変換する方法

文書翻訳 文書翻訳
2014 年 4 月 8 日に Office 2003 のサポートが終了しました

Office 2003 のサポートが終了しました

マイクロソフトは 2014 年 4 月 9 日に Office 2003 のサポートを終了させていただきました。 この変更は、ソフトウェア更新プログラムとセキュリティ オプションに影響します。
この変更の詳細や PC を保護する方法はこちら。

文書番号: 833402 - 対象製品
すべて展開する | すべて折りたたむ

はじめに

この資料では、Microsoft Excel で Microsoft Visual Basic for Applications (VBA) 関数を使用して、列番号を同じ列の対応する英文字の指定子に変換する方法について説明します。

たとえば、列番号 30 は、対応する英文字 "AD" に変換されます。

詳細

マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。
ConvertToLetter 関数でこの機能を実現するには、次のアルゴリズムを使用します (Excel 2007 の場合は、最大列数がそれ以前のバージョンより大きくなっているため注意が必要ですが、同様の方法で変換できます)。
  1. 列番号から 1 引いた数を 26 で割り、結果の整数値を変数 i に代入します。
  2. 列番号から i に 26 を掛けた数を引き、結果の整数値を変数 j に代入します。
  3. 整数値を対応する英文字に変換します。i および j は、それぞれ 0 ~ 9 および 1 ~ 26 の値になります。
たとえば、列番号が 30 の場合で説明します。
  1. 列番号から 1 を引いた数を 26 で除算すると、(30 - 1) / 26 = 1.1154 になります。Int 関数を使用して小数点以下を切り捨てると "1" になります。
    i = 1
  2. 次に j を計算すると、列番号 - (i * 26) = 30 -(1 * 26) = 30 - 26 = 4 となります。
    j = 4
  3. それぞれの値を個別に英文字に変換します。
    i = 1 = "A"
    j = 4 = "D"
  4. 2 つを組み合わせると、列指定子は "AD" になります。
次の VBA 関数は、列番号値を同等の英文字に変換する方法の一例です。
Function ConvertToLetter(iCol As Integer) As String
   Dim iAlpha As Integer
   Dim iRemainder As Integer
   iAlpha = Int((iCol - 1) / 26)
   iRemainder = iCol - (iAlpha * 26)
   If iAlpha > 0 Then
      ConvertToLetter = Chr(iAlpha + 64)
   End If
   If iRemainder > 0 Then
      ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
   End If
End Function
: この関数では、渡された整数がそれに対応する英文字に変換されるだけです。実際のワークシートの列または行の見出しの表示は変更されません。

プロパティ

文書番号: 833402 - 最終更新日: 2008年3月18日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
キーワード: 
kbcodesnippet kbcode kbhowto KB833402
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 
smallbusiness.support.microsoft.com/ja-jp から更なるサポートを受ける