Excel座標関係の汎用関数3

2つ、もしくは4つの長整数から、Range オブジェクト等で使う A1、もしくは A1:A1 形式の文字列を得る。前半2変数は必須、後半2変数はオプション。高度な判定は行っていないので XYToA1(1, 0, 0, 8) などと呼び出してもエラーは出さない。

Function XYToA1(Sx As Long, Sy As Long, _
                Optional Ex As Long = 0, Optional Ey As Long = 0) As String
    ' x,y の座標から A1 形式の座標表記を生成
    '   XYToA1(1, 2) = "A2"
    '   XYToA1(0, 2) = "2"
    '   XYToA1(1, 0) = "A"
    '   XYToA1(1, 2, 3, 4) = "A2:C4"
    '   XYToA1(0, 2, 0, 4) = "2:4"
    '   XYToA1(1, 0, 3, 0) = "A:C"
    
    XYToA1 = ""
    If Sx >= 1 Or Sy >= 1 Then
        If Sx >= 1 Then XYToA1 = XToCol(Sx)
        If Sy >= 1 Then XYToA1 = XYToA1 & Sy
        If Ex >= 1 Or Ey >= 1 Then
            XYToA1 = XYToA1 & ":"
            If Ex >= 1 Then XYToA1 = XYToA1 & XToCol(Ex)
            If Ey >= 1 Then XYToA1 = XYToA1 & Ey
        End If
    End If
End Function