• ベストアンサー

エクセルVBAで選択した範囲をテキストボックスにするにはどうすればいいでしょうか。

インプットボックスでユーザーに入力させる、というのがありますが、そのような感じでユーザーに範囲を選択させて、それをテキストボックスに変えるというものはできるでしょうか。 範囲には結合セルなどもあり、ユーザーの選択する範囲はマチマチです。 宜しくお願いします。

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

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

やってみると、小生勉強不足なのだろうが難しかった。 ・任意範囲指定を取り込む ・リストボックスへのアイテム取り込み ・結合セルの扱い は下記VBAコードで念頭にある。 あと ・イベントと結びつける(Workbook_Open?) ・InputBpx応答でキャンセル ・結合セルの多様なケースのテスト。(多列指定など) は、そこまでやってません。 Sub test01() Dim s As String Dim cl As Range Worksheets("Sheet1").ListBox1.Clear Set x = Application.InputBox("範囲=", Type:=8) MsgBox x.Address MsgBox """" & x.Address & """" 'Worksheets("Sheet1").ListBox1.ListFillRange = """" & x.Address & """" 'Range(x.Address).Select 's = """" & x.Address & """" 'Worksheets("Sheet1").ListBox1.ListFillRange = "D1:D3" For Each cl In x If cl.MergeCells = True And cl <> cl.MergeArea(1) Then Else Worksheets("Sheet1").ListBox1.AddItem cl End If Next End Sub ーー Msgboxの行とコメント化行は、参考に残してあります。適当に削除してください。 なぜかWorksheets("Sheet1").ListBox1.ListFillRange = """" & x.Address & """" が効かないこと 結合セルの最初のセルの取得 でつまず手間を取られた。そういう点で、よい回答が出ればよいが。 ーー このケースは、ユーザーに入力させるという点で、珍奇なケースだと思う。それなのに課題だけ質問に書いて丸投げになっている。好ましくない。 一旦リストにして、選択させる意味は少ないと思う。セルを選択したイベントでセルのデータを取れるとおもうから。

4k3s4r3
質問者

お礼

ずっとログインパスワードを紛失し開けませんでしたがひょこっと見つけることができました。 回答完璧でした。ありがとうございました。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

実は奥が深いInputBox http://officetanaka.net/excel/vba/tips/tips37.htm こちらが参考になるのではないでしょうか。

4k3s4r3
質問者

お礼

ずっとログインパスワードを紛失し開けませんでしたがひょこっと見つけることができました。回答ありがとうございました。

関連するQ&A