2025年08月01日 スタッフブログ 開発 関戸
AccessからExcelにデータを出力する機能を開発する事が良くありますが、クロス集計など、カラムの数が動的に変動する場合があります。
罫線を掛けたり最終行に合計値を設定したりする場合、Excelのセルの値も動的に変わって来ます。
このような場合、R1C1形式に置き換えて処理を行いますが、Excel上ではA1形式で表示されているため、分からなくなってしまう事があります。
Excelのカラムを数値からアルファベットに変換できないかと以前から思っていたのですが、COPILOTにお願いしてみた所、あっという間に関数を作ってくれました。
Public Function ColNumToLetter(lngColNum As Long) As String
Dim strColLetter As String
Do While lngColNum > 0
lngColNum = lngColNum - 1
strColLetter = Chr(lngColNum Mod 26 + 65) & strColLetter
lngColNum = lngColNum \ 26
Loop
ColNumToLetter = strColLetter
End Function
使用例)25→「Y」、27→「AA」
Public Function ColLetterToNum(strColLetter As String) As Long
Dim i As Integer
Dim lngColNum As Long
strColLetter = UCase(strColLetter)
For i = 1 To Len(strColLetter)
lngColNum = lngColNum * 26 + (Asc(Mid(strColLetter, i, 1)) - 64)
Next i
ColLetterToNum = lngColNum
End Function
使用例)「Y」→25、「AA」→27
とてもシンプルですし、chr関数を使うとは思いつきませんでした。
昨今、AIでシステム開発を行う事例などもありますが、どのような部分でAIを使ったらいいのか難しい面もあります。
このように、具体的で汎用的な関数を作成する際などにはAIは大いに役立つようです。