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

このQ&Aのポイント
  • Excelマクロでユーザフォーム上のテキストボックスにセルの選択範囲を転記する方法について教えてください。
  • ユーザフォーム上のテキストボックスに選択されたセルの範囲を表示したいと思っています。どのように実現すれば良いでしょうか?
  • Excelのマクロを使って、ユーザフォーム上のテキストボックスにセルの選択範囲を表示したいです。具体的な手順を教えてください。
回答を見る
  • ベストアンサー

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

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

  • k-pix
  • お礼率100% (8/8)

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

[Application.InputBox()]を使えば、入力時に任意のセルを選択出来ます。 Dim cel As Variant On Error Resume Next Set cel = Application.InputBox("セル範囲を選択してください。", "入力", Type:=8) If Err() <> 0 Then MsgBox "Input Error" Else MsgBox cel.Address End If

k-pix
質問者

お礼

早速の回答ありがとうございます。 コマンドボタンを追加し、Clickイベントに上記のコードを記述して試してみましたところうまく動きました。動作も理想通りです! 火急の用件でしたので本当に助かりました。 おかげさまをもちまして、目的とするところは達成できましたが、他の方法を提示してくださる方がいらっしゃれば後学のためにもなりますので、しばらくは回答を締め切らないでおきたいと思います。

関連するQ&A

  • ExcelVBA セルの範囲を選択

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

  • ユーザーフォームのテキストボックスについて

    ユーザーフォームのテキストボックスを使ってシートにデータを転記しています。 テキストボックスに日付を5/10のような形式で入力し、表示をH22.5.10と変換させるようにしています。 Private Sub TextBox1_AfterUpdate() x = TextBox61Text TextBox1.Text = Format(x, "ge.m.d") End Sub これを転記した時に、そのまま文字列として貼り付けられるため、シリアル値として入りません。 これをシリアル値として入れるためにはどのようにすればいいでしょうか?

  • Excel ユーザーフォームからの転記

    Excel ユーザーフォームからの転記 はじめまして、ご教授願います。 Exceiのユーザーフォーム内のテキストボックスのデータをシートに転記したいのですが、 教えてください。 テキストボックス内の改行を含んだデータを改行で区切って、別々のセル(縦に順に)に転記 したいのですが、方法がわかりません。 VBAでどのように書けばよろしいのでしょうか。 ご教授よろしくお願いします。

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

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

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

  • エクセルVBAユーザーフォーム「テキストボックス」「コンボボックス」の書式設定について

    ユーザーフォームを作成して、出荷実績を投入しようとしています。 現在、ユーザーフォームを作成して、 上から以下のようにボタンが並んでいます。 (1)コンボボックス1  商品コードと商品名を選択する。 (2)テキストボックス1~7  地域ごとの出荷実績を投入する。 (3)コマンドボタン1  決定→入力 (4)コマンドボタン2  終了 そして、以下3つの問題点がありますが、どのようにVBAを記述したら良いのか、わかりません。  a.コンボボックス1に表示される商品を商品コード   (アルファベット)と商品名で改行したい。   つまり「折り返して全体を表示する」ことは出来ないでしょうか。  b.「AAAA~」は5行目・「CCCC~」は7行目 といった   ように、商品ごとに値を投入する行を変更したい。  c.テキストボックス1~6の内容の合計が自動で(入力している   最中に)テキストボックス7に表示されるようにしたい。 次のようなVBAは記述出来たのですが、上記3つの要素を加えるには どのようにしたらよいのか、教えていただけないでしょうか? ちなみに入力する順番は次のようになっています。(設定済み) M4→L4→J4→K4→H4→I4 →M5→L5→J5→K5→H5→I5 ------------------------------------------------------------- ’フォームを表示させる。 Sub formdsp() UserForm1.Show End Sub ’フォーム内容 Dim cnt As Integer Private Sub Combobox1_Change() End Sub '入力ボタン Private Sub CommandButton1_Click() With ActiveSheet .Cells(cnt, 13) = TextBox1.Text .Cells(cnt, 12) = TextBox2.Text .Cells(cnt, 10) = TextBox3.Text .Cells(cnt, 11) = TextBox4.Text .Cells(cnt, 8) = TextBox5.Text .Cells(cnt, 9) = TextBox6.Text .Cells(cnt, 15) = TextBox7.Text cnt = cnt + 1 .Cells(cnt, 13) = Activate End With UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox7.Text = "" UserForm1.Combobox1.Text = "" UserForm1.TextBox1.SetFocus End Sub '終了ボタン Private Sub CommandButton2_Click() Unload Me End End Sub 'コンボボックス Private Sub userform_initialize() cnt = 4 With UserForm1.Combobox1 .AddItem "AAAA 11111111111" .AddItem "BBBB 22222222222" .AddItem "CCCC 333333333" .AddItem "DDDD 444444" .AddItem "EEEE 5555555555" .AddItem "FFFF 666" .AddItem "GGGG 7777777" .AddItem "HHHH 88888" .AddItem "IIIII 999999999" .AddItem "JJJJ 0000000000000" .AddItem "KKKK 1111" .AddItem "LLLL 222222" .AddItem "MMMM 3333" End With End Sub

  • ユーザーフォームのテキストボックスの書式設定について

    ユーザーフォームのテキストボックスの書式設定について TextBox1に金額、TextBox2に日付を入力し、Sheet1に転記するような フォームを作っています。 TextBox1には、 Private Sub TextBox1_Change() y = TextBox1.Text TextBox1.Text = Format$(CLng(y), "#,##0") End Sub としています。 TextBox2には、書式をH○○.○.○という設定にしたいのですが、 どのようにしたらよいでしょうか。

  • エクセル マクロ フォームに転記したい

    (1)エクセルSheet1にボタンをクリックするとフォームを出てくる。(2)そのフォームは、転記する専用のフォーム。(3)転記フォームの中にボタンを作り、新しいフォームが出てくる。(4)コンボボックスに表示した文字を転記フォームのテキストボックスに転記したい。 この様なことは出来ますか? マクロの記述を教えてください。

  • エクセルのユーザーフォームについて

    パスワード入力用のしかけです。 ワークシートに配置したコマンドボタンを押してユーザーフォームを呼び出します。 Private Sub CommandButton1_Click() UserForm1.Show End Sub ユーザーフォームにはテキストボックスとコマンドボタンを配置しております。 テキストボックスのPasswordCharには * を設定しました。 Private Sub CommandButton1_Click() If StrConv(TextBox1.Text, vbLowerCase) = "abcd" Then MsgBox "OK!" Unload Me Else TextBox1.Text = "" TextBox1.SetFocus End If End Sub これで、ABCDまたはabcdと入力され、ユーザーフォーム上のコマンドボタンをクリックすれば、ユーザーフォームは消えます。 でも、いちいちマウスでクリックするのが面倒なのでEnterキー1回でユーザーフォームを消したいのです。 今でも、一度Enterキーを押すと、ボタンにフォーカスが移動するので、さらにEnterで消えますが、二度ではなくEnterキー1回でユーザーフォームを消すにはどうすればよいのでしょうか? ユーザーフォームは使ったことがないのでわかりません。 よろしくお願いします。

  • エクセルマクロのテキストボックスを選択したい

    こんばんわ! エクセルマクロのユーザーフォームのテキストボックスを選択したままにしたいのですが、どうしたらよいでしょうか? 具体的には テキストボックスに値を打ち込みテキストボックスから移動すると確定?するようにしています。(下のプログラム) Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) msgbox "aaa",vbinformation endsub これが動作した後、またtextbox1を選択状態にしたいです。 アドバイスの程よろしくお願いいたします。