| 
    
     |  | 無いなら「作っちゃえ」ということで作ってみました。 基本的には、26進数と考えいます。A=0,B=1,・・・,Z=25として AA=0_0
 そうすると、1〜26(A〜Z)の範囲は矛盾するので、処理を分けています。
 
 Public Function C1_A(No As Long) As String
 
 Const Alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 Const myMessage1 As String = "値が大きすぎます。" & vbCrLf & _
 "1以上、256以下の値を指定してください"
 Const myMessage2 As String = "値が小さすぎます。" & vbCrLf & _
 "1以上、256以下の値を指定してください"
 
 Dim bufF As String
 Dim myNo As Long
 Dim N As Long
 Dim M(1) As Long
 
 '初期化
 C1_A = ""
 bufF = ""
 myNo = No
 N = Len(Alphabet)
 
 'Noの判定
 If 256 < myNo Then
 MsgBox myMessage1
 Exit Function
 ElseIf myNo < 1 Then
 MsgBox myMessage2
 Exit Function
 End If
 
 '26進数と考えたときの矛盾の修正
 '26以下 A=1,B=2,・・・,Z = 26
 '26以上 AA=0_0,AB=0_1,・・・,IV=8_21
 If myNo <= 26 Then
 bufF = Mid(Alphabet, myNo, 1)
 Else
 myNo = myNo - N - 1
 M(0) = myNo Mod N   '26進数と考え第一桁 割り算の余
 M(1) = myNo \ N    '26進数と考え第二桁 割り算の商
 
 For i = LBound(M) To UBound(M)
 bufF = Mid(Alphabet, M(i) + 1, 1) & bufF
 Next i
 End If
 C1_A = bufF
 End Function
 
 |  |