http://d.hatena.ne.jp/zecl/20090206/p1
c#しかなかったので、VB.NET版を書いた。
Public Shared Function ToAlphabet(ByVal nNumber As Integer) As String If nNumber <= 0 Then Return "" Dim nWorkNum As Integer = nNumber Mod 26 nWorkNum = IIf(nWorkNum = 0, 26, nWorkNum) Dim sWorkStr As String = (Chr(nWorkNum + 64)).ToString() If nNumber = nWorkNum Then Return sWorkStr Return CnvColN2A((nNumber - nWorkNum) / 26) + sWorkStr End Function Public Shared Function ToInt(ByVal sAlphabet As String) As Integer Dim sResult As Integer = 0 If String.IsNullOrEmpty(sAlphabet) Then Return sResult Dim cCharAry As Char() = sAlphabet.ToCharArray() Dim nLen As Integer = sAlphabet.Length - 1 For Each c As Char In cCharAry Dim nAscNum As Integer = Asc(c) - 64 If nAscNum < 1 Or nAscNum > 26 Then Return 0 sResult += nAscNum * CType(Math.Pow(26, nLen), Integer) nLen -= 1 Next Return sResult End Function