• ベストアンサー

列の番号ではなく文字列で取得するには

エクセル2003 Sub test() MsgBox ActiveCell.Column End Sub で現在カーソルのあるセルの列番号「3」が取得させるのですが 「C」と言う風に列の文字列で取得するにはどうすればいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.5

話の種に参戦してみます。 Sub test() MsgBox strColumnNo(ActiveCell) End Sub Function strColumnNo(target As Range) As String Dim strFormula As String strFormula = "C" & target.Cells(1).Column strFormula = Application.ConvertFormula(Formula:=strFormula, _ fromReferenceStyle:=xlR1C1, toReferenceStyle:=xlA1, ToAbsolute:=xlRelative) strColumnNo = Left(strFormula, Len(strFormula) - InStr(strFormula, ":")) End Function

参考URL:
http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page7.htm
noname#150256
質問者

お礼

関数を使う技もあるんですね! 大変参考になりました。ご回答ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

そうも出来る、という程度の内容ですが Sub test02() c = ActiveCell.Column x = c Mod 26 y = Int(c / 26) If y = 0 Then z = Chr(x + 64) Else z = Chr(y + 64) & Chr(x + 64) End If MsgBox z End Sub

noname#150256
質問者

お礼

試してみたらできました! ご回答ありがとうございます。

すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

Excel2000以降ならSplit関数が使えます。 MsgBox Split(ActiveCell.Address, "$")(1)

noname#150256
質問者

お礼

できました。大変参考になりました。ご回答ありがとうございます。

すると、全ての回答が全文表示されます。
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

Sub test() Dim ca As String, n As Integer ca = ActiveCell.Address n = InStr(2, ca, "$") ca = Mid(ca, 2, n - 2) MsgBox ca End Sub

noname#150256
質問者

お礼

やってみたらできました。 大変参考になりました。ご回答ありがとうございます。

すると、全ての回答が全文表示されます。
noname#262398
noname#262398
回答No.1

Sub test() Dim s As String With ActiveCell s = .Address(False, False) s = Replace(s, .Row, "") End With MsgBox s End Sub

noname#150256
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A