iLEDについて

Javaサンプル

Netbeans

Libre Office Basicマクロ

その他


Author of This Site:
M. Kom. (kom9kmail@gmail.com)
Spam対策のため@マークは全角になっていますから、メール送信時には半角にしてください。

Libre Office Basic マクロ

セルアドレスのアルファベット列名を数値列番号に変換する。

SDメモリ直輸入で激安 上海問屋

LibreOfficeに限らずMSのExcelでもセルの番号は「AD23」のように列番号がアルファベットの26進表示、行番号は数字の10進表示 で表されます。人間が操作する場合にはこれでもいいのでしょうが、マクロでセルの操作をする場合には列番号も数値で扱うのが 普通です。しかし、ダイアログなどで人間がセルを指定し、それに基づいてプログラムで処理するときには人間が指定したアルファベット の列番号を数値に変換する必要が出てきます。
以下はそういった変換処理を行うFunctionのサンプルです。「DEA35」のような複数桁の列表示にも対応しています。
OpenOfficeマクロプログラミング―「Writer」「Calc」「Base」…OOoをBasicで便利に! (I・O BOOKS)

Sub GetColNumTest()
    Dim cnum as Long
    cnum = GetColNum("DF56")
    msgbox("DF56→" & cnum, 0, "列番号変換")
End Sub

Function GetColNum(strAdr as String) as Long
    '"A1"形式のセルアドレスの列番号を返す。(Aは0)
    'AG7 等の列アドレス複数桁にも対応
    Dim nChrCode as Long
    Dim  numWork as Long
    
    numWork=0
    for i=0 to Len(strAdr)-1
        nChrCode= ASC(UCASE(Mid(strAdr, i+1, 1)))
        if nChrCode >= ASC("A") and nChrCode <= ASC("Z") then
            numWork = numWork * 26 + nChrCode-ASC("A") +1 
        else exit for
        end if
    next i
    'msgbox(numWork, 0, "GetColNum2")
    GetColNum= numWork-1
End Function