Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9923 / 13646 ツリー ←次へ | 前へ→

【24750】Column名(アルファベット)の取得方法 monmon 05/5/8(日) 5:26 質問[未読]
【24751】Re:Column名(アルファベット)の取得方法 Hirofumi 05/5/8(日) 9:21 回答[未読]
【24752】Re:Column名(アルファベット)の取得方法 ichinose 05/5/8(日) 9:50 発言[未読]
【24753】Re:Column名(アルファベット)の取得方法 Kein 05/5/8(日) 9:53 回答[未読]
【24755】Re:Column名(アルファベット)の取得方法 monmon 05/5/8(日) 16:03 お礼[未読]

【24750】Column名(アルファベット)の取得方法
質問  monmon  - 05/5/8(日) 5:26 -

引用なし
パスワード
   また、お願いします。

以下のような、コードで文字列"XXX"を含むセルの列番号を取得することはできたのですが、Columnのアルファベット名(A,B,C....)を取得する方法がわかりません。どなたか、ご教授ください。

Set R = Rows("1:1").Find("XXX", LookIn:=xlValues, LookAt:=xlWhole)
Col_XXX = R.Column

【24751】Re:Column名(アルファベット)の取得方法
回答  Hirofumi  - 05/5/8(日) 9:21 -

引用なし
パスワード
   'Columnのアルファベット名(A,B,C....)を取得するのは、
'余り意味が無い様な気しますが(列番号で大抵の事は、出来ます)
'如何しても必要なら

Option Explicit

Sub text()

  Dim R As Range
  Dim Col_XXX As String
  
  Set R = Rows("1:1").Find("XXX", LookIn:=xlValues, LookAt:=xlWhole)
  If Not (R Is Nothing) Then
    Col_XXX = GetColumnChr(R.Column)
  End If
  
End Sub

Public Function GetColumnChr(ByVal vntMark As Variant) As String

  Dim strFChr As String
  Dim strRChr As String
  
  If Val(vntMark) <= 0 Or 256 < Val(vntMark) Then
    Exit Function
  End If
  
  vntMark = Val(vntMark) - 1
  If (vntMark) \ 26 = 0 Then
    strFChr = ""
  Else
    strFChr = Chr((vntMark) \ 26 + &H40)
  End If
  strRChr = Chr((vntMark) Mod 26 + &H41)
  
  GetColumnChr = strFChr & strRChr
  
End Function

【24752】Re:Column名(アルファベット)の取得方法
発言  ichinose  - 05/5/8(日) 9:50 -

引用なし
パスワード
   monmon さん、Hirofumiさん、おはようございます。

>また、お願いします。
>
>以下のような、コードで文字列"XXX"を含むセルの列番号を取得することはできたのですが、Columnのアルファベット名(A,B,C....)を取得する方法がわかりません。どなたか、ご教授ください。
>
>Set R = Rows("1:1").Find("XXX", LookIn:=xlValues, LookAt:=xlWhole)
if not R is nothing then
  MsgBox Split(R.Address, "$")(1)
  end if
でもいいと思いますが・・。
試してみて下さい。

【24753】Re:Column名(アルファベット)の取得方法
回答  Kein  - 05/5/8(日) 9:53 -

引用なし
パスワード
   ま、無駄であることを承知の上で、あえて列記号を求めるなら

Sub MyCol()
  Dim Ck As Variant, Ary As Variant
   
  Ck = Application.Match("XXX", Rows(1), 0)
  If Not IsError(Ck) Then
   Ary = Split(Cells(Ck).Address, ":")
   MsgBox Ary(LBound(Ary))
  End If
End Sub

などとすれば出来ますが。

【24755】Re:Column名(アルファベット)の取得方法
お礼  monmon  - 05/5/8(日) 16:03 -

引用なし
パスワード
   ありがとうございます。解決しました。
また、よろしくお願いします。

9923 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free