【R1C1→A1用】Excelの列番号を英文字に変換する【VB.NET】
Introduction
Excel の列番号を英文字に変換する方法 | Microsoft Docs
を自分用にVB.NETでちょい編集。
諸事情でR1C1形式が使えなく、仕方なしでA1形式に変換しなければいけないので、、、
Program
Program.vb
Imports System
Module Program
Sub Main(args As String())
' 標準入力
Console.Write("Please Input x : ")
Dim x AS Decimal = Console.ReadLine()
' 変換して標準出力
Console.WriteLine(ConvertToLetter(x))
End Sub
' Excel の列番号を英文字に変換する
' 例) 1 -> A , 26 -> Z , 29 -> AC
' https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/convert-excel-column-numbers
Function ConvertToLetter(iCol As Decimal) As String
Dim a As Decimal
Dim b As Decimal
a = iCol
ConvertToLetter = String.Empty
' iCol が1未満の場合、終了
Do While iCol > 0
a = Int((iCol - 1) / 26) ' (iCol-1) を 26で除算した商
b = (iCol - 1) Mod 26 ' (iCol-1) を 26で除算した余り
' b を 対応するアルファベット文字 ( 0 => A , 25 => Z )に変換し、結果を文字列の先頭に付加
ConvertToLetter = Chr(b + 65) & ConvertToLetter
' iCal に a を代入してループ
iCol = a
Loop
End Function
End Module
Output
Program.vb
Imports System
Module Program
Sub Main(args As String())
' 標準入力
Console.Write("Please Input x : ")
Dim x AS Decimal = Console.ReadLine()
' 変換して標準出力
Console.WriteLine(ConvertToLetter(x))
End Sub
' Excel の列番号を英文字に変換する
' 例) 1 -> A , 26 -> Z , 29 -> AC
' https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/convert-excel-column-numbers
Function ConvertToLetter(iCol As Decimal) As String
Dim a As Decimal
Dim b As Decimal
a = iCol
ConvertToLetter = String.Empty
' iCol が1未満の場合、終了
Do While iCol > 0
a = Int((iCol - 1) / 26) ' (iCol-1) を 26で除算した商
b = (iCol - 1) Mod 26 ' (iCol-1) を 26で除算した余り
' b を 対応するアルファベット文字 ( 0 => A , 25 => Z )に変換し、結果を文字列の先頭に付加
ConvertToLetter = Chr(b + 65) & ConvertToLetter
' iCal に a を代入してループ
iCol = a
Loop
End Function
End Module
Author And Source
この問題について(【R1C1→A1用】Excelの列番号を英文字に変換する【VB.NET】), 我々は、より多くの情報をここで見つけました https://qiita.com/TQR/items/456f4bfc108d5efafe0e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .