エクセルの列名(アルファベット)取得

🟢 PowerShell
投稿日: 2026年4月13日7:24
function GetA1([int] $n) {
    if($n -gt 26){
        $divs=[Math]::Truncate($n / 26)
        $C1= [System.Convert]::ToChar([int]$divs+64)
        if($C1 -eq "@"){$C1="Z"}
         $rest=$n % 26
         $C2= [System.Convert]::ToChar($rest+64)
        if($C2 -eq "@"){$C2="Z"}
         $A1=$C1+$C2
        return $A1
    }else{
         $rest=$n % 26
         $C1= [System.Convert]::ToChar($rest+64)
         if($C1 -eq "@"){$C1="Z"}
          return $C1
    }
}
数字をアルファベットに変換している。
26より大きければ2桁の処理。
 ※ 3桁には対応していない。

数値を26で割って切り捨てたものを2桁目の文字コードとして、Charに変換している。(64を足すと良い感じになる)

26の余りを1桁目として処理している。

何故か、Z が @ とされてしまうので、個別に対応している様子。

エクセルをオブジェクトとして呼んで、
列名の処理をすればよかっただけじゃ ねぇ?