うちみたいにPJ変わるごとに前のリソースが使えないような仕事をしてると、
前にこれやったのになぁ~どうやるんだっけ?っていう事によく遭遇するわけで。
凄く作業の無駄な気がするわけですが・・・
ま、前置きはともかく。毎回毎回調べてコード書くのも面倒なんで、
ここに記載しておいたり。
・列番号から列文字の算出
Private Function ConvIdxToCol(ByVal intColIndex As Integer) As String
Dim strCol As String = ""
Dim intAcode As Integer = 64
Dim intAlpha As Integer = CInt(Math.Floor((intColIndex - 1) / 26))
Dim intRemaind As Integer = intColIndex - (intAlpha * 26)
'2桁目を算出
If intAlpha > 0 Then
strCol = Chr(intAcode + intAlpha)
End If
'1桁目を算出
If intRemaind > 0 Then
strCol = strCol & Chr(intAcode + intRemaind)
End If
Return strCol
End Function
・列文字から列番号の算出
Private Function ConvColToIdx(ByVal strCol As String) As Integer
Dim intAcode As Integer = 64
Dim intCol As Integer = 0
Dim chrCols() As Char = strCol.ToCharArray
If chrCols.Length > 1 Then
'2桁目を計算
intCol = (Asc(chrCols(0)) - intAcode) * 26
'1桁目を計算
intCol = intCol + Asc(chrCols(1)) - intAcode
Else
'そのまま計算
intCol = Asc(chrCols(0)) - intAcode
End If
Return intCol
End Function
相対位置を求めるようなロジックはこれの組み合わせで出来るから、
とにかくこれだけ記録っと。
しかしVBのコードって見た目が美しくないよなぁ・・・w