• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルVBAでテキストボックス等選択する。

    こんばんわ! エクセルのVBAのユーザーフォームについての質問です。 オプションボタン1・2・3とあって 1を選択したらテキストボックス1が選択される(そのまま入力できる状態になる) 2を選択したらテキストボックス2が選択される(そのまま入力できる状態になる) 3を選択したらテキストボックス3が選択される(そのまま入力できる状態になる) ということをしたいのですが、どのようにすればよいでしょうか? アドバイスの程よろしくお願いいたします。

  • Excelマクロ:ユーザフォーム上のテキストボックスにセルの選択範囲を転記

    ユーザフォーム上のテキストボックスにセルの選択範囲(例えば "A5:M31")を転記する方法についてお知恵を拝借願えればと思います。 【前提条件】 1.ユーザフォーム(UserForm1)がモーダルで表示されています。 2.ユーザフォームが表示されている時点では、望むべきセルは選択されていません。 3.テキストボックスが2つあります(TextBox1, TextBox2)。 【やりたいこと】 1.上記の2つのテキストボックスには、それぞれ違ったセルの選択範囲を表示したい。 2.上記の前提条件において、なんらかのトリガー(例えばコマンドボタン押下)によって、マウスドラッグによりセルを選択し、その範囲をテキストボックスに記入したい。 【補足】 1.【やりたいこと】の2で記しましたトリガー(例えばコマンドボタン押下)のタイミングでユーザフォーム(UserForm1)を非表示にするのは問題ありません。 2.できれば、セル選択時の MouseUpイベントでユーザフォームに転記させたいのですが、スクロールバー等の操作によるMouseUpイベントも入ってくる可能性が大です。 以上、必要な情報に不足がございましたら補足要求で指摘して頂ければ幸いです。 どうぞ、よろしくお願いいたします。

  • ExcelVBA セルの範囲を選択

    現在、ユーザーフォーム上のコマンドボタン押下にてインプットボックス(Type:=8)を表示し、シート上のセル範囲を選択するマクロを使用しています インプットボックスを介さず、コマンドボタン押下からセルの範囲選択が出来る、ということはできるでしょうか?

  • Excel2000VBA テキストボックス内での改行で・・・

    ユーザーフォームにテキストボックスを作り、 テキストボックス内での改行をできるように設定します。 このテキストボックスに入力されたデータをセルに入力すると セルでは改行したところに「・」が入ってしまいます。 例えばテキストボックスに  こんにちは[改行]  いい天気ですね と入力して、これをsheet1のA1に入力します。すると、  こんにちは・  いい天気ですね と入力されてしまいます。 この「・」を表示しないようにする方法はありますか? よろしくお願いします。

  • Excel セル範囲のデータをユーザーフォームのテキストボックスへ表示するには

    範囲選択したセル内のデータを削除する前に、ユーザーフォームのテキストボックス内にデータを移すという作業をVBAで作成したいのですが、調べても見つかりません どのようにしたらいいでしょうか?

  • テキストボックスへにセル値の入力

    エクセルマクロの初心者で恐縮なのですが、ユーザーフォームのテキストボックスに下記のようなことは可能でしょうか? 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか? 例1・2)についてどのようなマクロを組めばよいのでしょうか? マクロにお詳しい方、大変申し訳ございませんか、ご指導お願いいたします。

  • エクセル テキストボックス

    教えてください。 機器の点検表をエクセルにて作成しました。 電圧と周波数を記入する欄で カッコを入れたいのですが、かなり細かい表で、 セルをまたいで、こんな感じ→(□)で テキストボックスにてカッコを入れました。 (※□は1個のセルです。) この場合、どうしてもこのセルに入力しようとすると、 先にテキストボックスが反応してしまい、 なかなか□のセルに値を入力することができません。 1回でセルに入力が可能になる方法はあるでしょうか? テキストボックッスが最後面(セルよりも後ろ) になるイメージです。 説明がうまくできていないかもしれませんが、 どうか、お力貸してください。 よろしくお願いいたします。

  • エクセル2010テキストボックスとシートの保護

    テキストボックスとシートの保護について エクセル2010を使用しています。 シートの中には、結合したセルの中に文字が入力してあり、 またテキストボックスを使用して、その中に文字が入力してあるものもあります。 そこで質問なのですが、 (1)テキストボックスの枠(?)のみを固定(保護)し、入力だけを可能にする。 ※サイズの固定ではなく、その場所から動かさないように固定する方法です。 (2)セルを固定(保護)し、入力のみを可能にする。 上記を同時に可能にするためには、どのような操作をしたらよろしいでしょうか? ご教授お願いいたします。

  • EXCEL VBA セルに既に入力されている文字に文字を追加する

    EXCELでマクロを作成しています ユーザーフォームを使用し、コンボボックスでセルを選択し、その選択したセルにテキストボックスから文字を入力できるようになっています。 選択したセルが空白ならそのままテキストボックスの文字を挿入し、 もし選択したセルにすでに文字が入力されている場合は、すでに入力されている文字+テキストボックスの文字、という風にしたいと思っています。 例:選択したセル  「ガソリン代」   テキストボックス「高速代」   → 『ガソリン代高速代』  その次も同じセルを選択した場合     テキストボックス「電車代」   → 『ガソリン代高速代電車代』 このような感じです。 文字をどこかに代入してテキストボックスの文字と&で結んで入れてやれば良いのかもしれませんがつまづいております。 ぜひ助けていただければうれしく思います よろしくお願いします。

  • VBAでテキストボックスを作成

    エクセルのVBAで、セルに長めの文章を打ち込む時、セルを選択したらテキストボックスなりが開くようなことはできませんか? テキストボックスは別窓じゃなく、同じエクセル内で開くのが望ましいです。

専門家に質問してみよう