• ベストアンサー

ユーザーフォーム

ユーザーフォームを作成しました。 ExcelにA:番号B:氏名C:住所D:電話で順に入力出来ますが、1行削除・追加した場合、その空欄行に自動で入力出来るようにしたいのですが可能でしょうか。現在は自動的に+1で下行に入力します。 たとえばAに1~20行まで入力されており、10行を削除または挿入した場合にその空欄行に入力出来るようにしたい。 宜しくお願いします。

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

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

質問文章を丁寧に。下記はだいぶん質問文の内容を補って書いているよ。 エクセルでユーザーフォームを作成し、フォーム上にテキストボックスを4つ貼り付けた。さらにコマンドボタンを1つ貼り付けた。 Private Sub CommandButton1_Click() d = Range("A200").End(xlUp).Row 'MsgBox d Cells(d + 1, "A") = UserForm1.TextBox1.Text Cells(d + 1, "B") = UserForm1.TextBox2.Text Cells(d + 1, "C") = UserForm1.TextBox3.Text Cells(d + 1, "D") = UserForm1.TextBox4.Text UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" End Sub をコマンドボタンのクリックイベントに作る。 一方フォームの表示用に 標準モジュールに Sub test01() UserForm1.Show vbModeless End Sub を作る。 シートを触れるように、 vbModeless がミソである。 この実行のキッカケはワークブックのオープンイベントなど適当にして(変えて)ください。 test01を実行し、4つのテキストボックスにデータを入れて(ボックス移動はTABキー)コマンドボタンをクリックすると、順次行のA-D列にデータがセットされる。 シートの行を選択し、行削除して、次のデータをフォームのテキストに入れてコマンドボタンをクリックすると、直下行にデータがセットされた。

gorugo48
質問者

お礼

お返事大変遅くなりました。 ユーザーフォーム、重宝しております。 有り難うございました。 また、宜しくお願いします。

gorugo48
質問者

補足

imogasi様。早速の回答、有り難うございます。 説明不足、申し訳ございません。 これから質問時には、気をつけますので補足質問宜しくお願いします。 VBAを貼り付けましたが、セル・行をDeleteしますと、その行には挿入せずに、下行に入力します。次に入力する場合、空白セルに挿入出来るようにすることは、可能でしょうか?また、できればC列を並び替えもしたいのですが、宜しくお願いします。

その他の回答 (1)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

やり方はいくつかありますが、一案。 見出し: 1行目 データ: 2行目~ シート: ActiveSheet UserFormのCommandButton1でシートへ転記する場合 '------------------------------------------- Private Sub CommandButton1_Click()  Dim R As Long  R = 2  Do Until Cells(R, "A").Value = ""    R = R + 1  Loop  Cells(R, "A").Value = TextBox1.Value  Cells(R, "B").Value = TextBox2.Value  Cells(R, "C").Value = TextBox3.Value End Sub '--------------------------------------- ActiveSheetでないシートに転記する場合は、 全てのCells(R, )の前に、シート名を付加すること 例えば、     Sheets("Sheet3").Cells(R,"A") とか。 以上。

関連するQ&A

  • VBAユーザーフォーム上での検索がしたい

    ユーザーフォームを作成したのですが、コードが分かりません教えて下さい。 ・ユーザーフォームは氏名を入力欄とし以下住所、電話番号等、個人情報が氏名を入力することによって、出てくるようにしたいのですが、可能ですか?個人情報はEXCELシート上にあり、随時追加されていきます。

  • エクセルでユーザーフォームを利用したいのですが・・・

    エクセルでユーザーフォームを利用したいのですが・・・ ユーザフォームは作れるのですが、なにせ、コマンドボタンを押したときのマクロを教えていただきたいです。 たとえば、A欄に日付B欄に会社名C欄に数字を入力するとしまして、 とうぜん、ユーザーフォームには日付、会社名、数字の入力ボックスとコマンドボタン(入力ボタン)があるわけです。 入力ボタンを押せば順に入力していただきたいのですが、条件があるのです。 その1、1行目2行目は使いますので3行目から入力してもらいたい。 その2、入力順、日付順に並べてほしい。 その2をもう少し詳しく書かせていただきますと、今日に10行分のデータを入力したとしまして あしたの分も2行ほど早めに入力したとします。 明日の分は当然、明日の日付でするわけです。 さて、今日の分を追加したいとき、明日の日付の前にこないと駄目という条件でございます。 よろしゅうおねがいします。

  • ユーザーフォームについて

    エクセル2002です。 ユーザーフォーム内のテキストボックスを使用して、 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 (2)ユーザーフォーム内のテキストボックスには2と表示される (3)ユーザーフォーム内のボタンを押すと、A2のセルに2と入力される。 このような流れで、A列のデータ最終行に番号をふっていきたいです。 (A列のデータ最終行がA30なら、A31に31と番号をふる) ユーザーフォームのテキストボックスとボタンは作ってあるのですが、 それぞれに入れるコードを教えていただけないでしょうか。 よろしくお願いします。

  • エクセル ユーザーフォームの住所録

    エクセルVBAのユーザーフォームサンプルとして、住所録を見かけますが、 1.一方的に入力するだけでなく、既に入力したデータがあるかないかを検索し、ユーザーフォームに呼び出し、上書き、もしくは、新しいデータ(列)として追加することは可能でしょうか? 2.1.が無理な場合、入力したデータ側は触らずして、他に方法はないでしょうか?(エクセルにて) 3.2.が難しい場合、アクセスなら可能なのでしょうか? 住所録より少し複雑なデータ入力をユーザーフォームで作成しようと検討中です。宜しくお願いします。

  • 入力フォームをテーブルの真下に転記

    エクセルのVBAで入力フォームを作成して、入力フォームのテキストをシート2の、テーブルの見出しの次の行から転記される用にしたいのですが、最終行を取得すると見出しから一行飛ばして二行目に転記されてしまいます。 テーブルを作成した時に見出しの下に空欄のデータシートが自動で追加されてしまうからでしょうか? 何か対策はあるでしょうか? コードで提示して頂くと助かります。 入力フォームはシート1で開く 転記 シート2のA列から順に、連番生成(1〜)、テキストボックス1.2.3..... 宜しくお願いします

  • ユーザーフォームから行検索後、データ挿入の仕方について

    エクセルでの名簿作成時に関する質問です。 現在エクセルで名簿を作成する際に、ユーザーフォームを使って入力しています。 データは、まず一番上の行に「A1~G1」までの(1人につき)7項目挿入され、 その後、全体を「A列」の氏名順に並び替えるという作業をしています。 「登録」ボタンと、「並び替え」ボタンを押さねばならず、 2度手間のような気がしてなりません。 ちなみに、名簿自体はローマ字名順(a.b.c.~z)に並べています。 ユーザーフォームのテキストエリアに記入し、「登録」ボタンを押すだけで、 既存の名簿から該当のローマ字を検索して探し出し、 その下に行の挿入・登録されるような機能はないのでしょうか? 例えば、「佐藤さん(sato)」のデータをユーザーフォームから入れる際に 「登録」ボタンを押すと・・・ ---------------------------------------------------- 【名簿】   ******   ←ここではなく・・・   abe  ・  ・  oda    sasaki  ******   ←【sat*】を検索して直接ここに登録したいのです。  seki ---------------------------------------------------- マクロを始めたばかりでよく理解していない事が多いのですが、 何か良い方法がありましたら、アドバイスをお願い致します。

  • ユーザーフォームを使った検索について

     仕事で使うために、VBAを勉強中ですが、検索の段階でつまずいてしまいました。自分なりに色々やってみたのですが、どうしてもうまくいきません。自分の知識不足が原因なのですが、どこをいじったらよいのかわからないでいます。  シート"一覧"にA列から整理No、職員番号、職種、氏名・・・・という風に、40列、130行程度データが入ります。 ユーザーフォームに複数のテキストボックスを作り、氏名を入力することで、任意のテキストボックスにその行のデータを返すようにしたいのですが、検索すると、アクティブセルの値が表示されます。  よろしくお願いします。

  • ACCESSのフォームの作り方について

    ACCESSのフォームについてお尋ねします。 『会員ナンバー』を主キーに設定しているテーブル(顧客データ。会員ナンバー・住所・氏名等のデータが入ってます)を元にACCESSで入力フォームを作っているのですが、会員ナンバーを入力したら住所・氏名のテキストボックスに自動的に入力されるにはどのようにしたらいいですか? 現在データが1番から自動的に表示されていて、例えば1番の人が表示されているときに会員ナンバーのテキストボックスに番号を入力すると、そのまま1番の人が上書きされてしまいます。 会員番号を検索して住所などのデータが出てくるイメージにしたいのですが。。。 本当はすでに入力されている住所等のデータはこのフォームでは上書きされないようにしたいのです。 ちなみにこのレポートは会員を新規追加するためではなくどんな修理をしたかという項目を追加させるため物です。

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

    お世話になります。 エクセルのユーザーフォームを初めて作っています。 その中で、ある金額を桁ごとにバラバラに入力する部分があるのですが、通貨単位を左端に自動で入力されるようにしたいです。 例えば、下記のように [A] [B] [C] [D] [E] [F] [G] [H] [I] A=空白 B=空白 C=空白 D=空白 E=1 F=0 G=8 H=0 I=0 と入力している場合には、実際にセルに数値が反映される際に[D]=¥が挿入される形にしたいです。 このような動作をフォーム入力確定時に自動で行うにはどうすれば良いでしょうか? もし何か良い方法がありましたら、ご教授くださいますようお願い致します。

  • ユーザーフォーム上のボタンの使い方

    今、VBAの本とインターネットで調べながら初めてユーザーフォームを作成中ですが、 どうしてもわからないことがあり、ご質問させていただきました。 初歩的なことかも知れませんが、ご教授よろしくお願い致します。 1.オプションボタンを二つ作成しました。  一方を選択した場合、フレーム全体をグレーアウトに  することはできますか。  例)ユーザーフォーム上のオプションボタン  A:住所登録   (郵便番号・所在地等を入力)  B:電話番号登録 (電話番号を入力) ※Bをオプションボタンで選択した場合、Aのフレーム全体を  グレーアウト(入力禁止)にすることはできますか。 2.ComboBoxで"年"、"月"、"日"それぞれプルダウンで選択できるように  したのですが、ワークシートに反映する時、同一セルに入力するか、  それらの数字を認識して日付として一つのセルに表示することはできますか。  例)ユーザーフォーム上    2007▼年   4▼月  19▼日  ※一つのセルに“2007年4月19日”と表示することはできますか。 3.2.の続きで、"年"、"月"、"日"すべて選択している場合、  チェックボックスにチェックが入り、どれか一つでも空白の場合は  チェックボックスがグレーアウトしている、という状態はできますか。 4.ユーザーフォームで入力した内容がExcel上にどんどん   追加していく時のマクロはどのように記述したらいいのですか。  (ユーザーフォームに入力した内容を、セルを指定せずにどんどん  追記していく方法) 質問が多くて申し訳ございませんが、よろしくお願い致します。