• ベストアンサー

コンボボックスに行、列の名称の表示って出来る?

エクセルで、任意のセルを選択して、データの並び替えを選択すると選択範囲の行の名前(例:行6、行7、行8)や、列の名前(列C,列D,列E)と表示されますが、自分で作ったコンボボックスに同じ形式で表示することって出来ますか?行については、Rowsで範囲を範囲を抽出すれば出来そうですが、列をどのように実現すればいいのか?って悩んでいます。 力技で、手動でC,D,Eとカウントアップしていけば出来そうですが、芸が無いような気もします。どなたか?ヒント頂けないでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 #1 さんの >2、Chr関数を使って、アルファベットに変換。 >でできそうな気がしますが、AA列以降のことも考えるとめんどくさそう。 i = 1~256 ret = Replace(Chr(Int(i / 27) + 64) & Chr((i - 1) Mod 26 + 65), "@", "") Sub ComboBoxListing() Dim r As Range Dim i As Integer Set r = Range("B1:E20") ''空でない場合は以下を入れる 'ComboBox1.ListFillRange = "" 'ComboBox1.Clear For i = r.Column To r.Column + r.Columns.Count -1   ComboBox1.AddItem _    Replace(Chr(Int(i / 27) + 64) & Chr((i - 1) Mod 26 + 65), "@", "") & "列" Next i Set r = Nothing End Sub 例えば、こんな感じ? でも、これは、Rangeオブジェクトを最初に取っているのだから、そのアドレスから取ればよいのですね。これに関しては、あまり差はないような気がします。 もしコンボボックスが、コントロールツールなら、そのプロパティの 「ColumnHead : True」にすれば、同じ列名と、内容が全部出るはずです。それは、質問とは違うかもしれませんが。^^;

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんばんは。思いつきですが。   For i = 1 To Columns.Count     sColName = Cells(1, i).Address(True, False)     sColName = Left$(sColName, InStr(sColName, "$") - 1)     ComboBox1.AddItem sColName & "列"   Next

  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.1

1、Columnプロパティで列番号を数字で取得。 2、Chr関数を使って、アルファベットに変換。 でできそうな気がしますが、AA列以降のことも考えるとめんどくさそう。 手動設定の方が、シンプルでいいかも!?

関連するQ&A

専門家に質問してみよう