Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


60046 / 76732 ←次へ | 前へ→

【21337】Re:数値の列番号を元にsum数式文字列を作りたい
回答  G-Luck  - 05/1/19(水) 10:04 -

引用なし
パスワード
   無いなら「作っちゃえ」ということで作ってみました。
基本的には、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
0 hits

【21305】数値の列番号を元にsum数式文字列を作りたい みゅう 05/1/18(火) 17:04 質問
【21307】Re:数値の列番号を元にsum数式文字列を作り... Kein 05/1/18(火) 17:21 回答
【21309】Re:数値の列番号を元にsum数式文字列を作り... Jaka 05/1/18(火) 17:34 発言
【21337】Re:数値の列番号を元にsum数式文字列を作り... G-Luck 05/1/19(水) 10:04 回答
【21340】Re:数値の列番号を元にsum数式文字列を作り... みゅう 05/1/19(水) 13:18 お礼

60046 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free