• ベストアンサー

テキストボックスの値をセルに反映させたい。

はじめまして、いつもお世話になっております。 EXCEL VBAの質問です。 下記(1)(2)の質問にお答えいただきたく、お願いいたします。 (1)ユーザーフォームのテキストボックスの値をEXCELのデータが入力されている 最終行の下の空白にユーザーフォームのボタンをクリックして反映。 (2)(1)の逆で特定のセルの値をユーザーフォームのテキストボックスに反映。 色々なサイトのプロシージャをコピペしましたが、うまくいきません。 見づらいかもしれませんが、ユーザーフォームの画像を添付します。 皆様、よろしくお願いいたします。

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

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

この質問はエクセルVBAの質問に間違いないだろう。 質問文章に (1)エクセルVBAと明記している (2)UserFormはVBAで使われる用語で、VBはFormだったと思う。VBも6.0とVB.NET系で大幅に違う。 (両者は違うものなので、質問文の表現には特に注意) (3)「特定のセル」などの用語から エクセルのことを言っているのは間違いないだろう。 === シートは「Sheet1」を対象にする。 新規ブックを開き、Sheet1の画面が出るから、ALTキーを押しつつ F11キーを押す。VBEの画面になる。 挿入ーユーザーフォームでユーザーフォームが現れる。 「ユーザーフォーム」を1つ挿入したことになる。 「ツールボックス」もともに出ているだろうから、そこからUserForm上にテキストボックスとコマンドボタンを1つづつ、D&D(マウスでドラッグアンドドロップ) そのユーザーフォーム上に(1)テキストボックス1つ(2)コマンドボタン1つ設けるわけだ。 ここまではやり方わかるのかな。 ーーーー コマンドボタンをクリックすると Private Sub CommandButton1_Click() End Sub が現れる。 その空白行に下記の中身コード行を張り付ける Private Sub CommandButton1_Click() If UserForm1.TextBox1.Text = "end" Then 'endと入力されったら UserForm1.TextBox1.Text = "" Application.Goto Sheets("Sheet1").Range("A1") UserForm1.Hide 'ユーザーフォームを見えなくして Exit Sub '終わる Else lr = Range("A10000").End(xlUp).Row '最終行を選択 Cells(lr + 1, "A") = UserForm1.TextBox1.Text '現在最終行の次行にデータセット UserForm1.TextBox1.Text = "" '次回のためにテキストボックスをクリア ActiveCell.Offset(1, 0).Select '次回のために,次行を選択 UserForm1.TextBox1.SetFocus '次回のために,テキストボックスを入力待機状態にする End If End Sub にする。 そこで実行ー「Sub/ユーザーフォームの実行」をクリック。 本番のユーザーフォームが現れて、(それ以前のものはデザインモードのもの)そのテキストボックスに文字や数字を入力する。 目視確認して正しく入ったら、コマンドボタンをマウスでクリック。 これ(テキストボックス入力+コマンドボタンクリック)を繰り返すと すると前ステップで入力された(A列)最下行の次のセルに、今回入力したデータが、セットされる。 A2から順次に、下方向に入力したデータが入るはず。 入力を終わらせるときは、テキストボックスに「end」と入れて、コマンドボタンをクリック(これは小生の好みでそうしたのですが、(また旧Basic時代からの古くからのやり方でもある)やるもので、他にも方法があろう) === 画像例のようなのは、プロなどが設計するもので、他にいろいろな知識経験がいる。質問者のレベルですぐには無理だと思う。 最低でも、アクセスのシステムなどで、作られる場合が多いと思うが、そばに教える人がいないと無理だろう。 理屈ではシコシコやればよいというだけではあるが。システム関連の会社でも入らないと訓練の場がないだろう。 それにテキストボックスの案内のためにラベルで何のデータのテキスト化を示すことが多い。

maiboutan1
質問者

お礼

色々とご指摘、ご指導をいただき有難う御座います。為になる点を色々と教えていただき、助かりました。

その他の回答 (2)

  • akauntook
  • ベストアンサー率19% (295/1481)
回答No.2

>引き続きご質問をさせて頂いてもよろしいでしょうか? 私が判断できるような立場ではないのですが、質問があれば回答致します。 暇な時間に補足のあった質問や、新着順の質問を確認して、質問の目的につながる回答が出来そうなものに回答しています。 今回の質問のカテゴリーが、目的には適していないように思えますので、私以外の回答者からの回答に期待しづらいのではないかと思いますので、一旦質問は締め切られて、新たに質問されてはいかがでしょうか。 その際には、こちらの質問のURLも含めて頂ければ、回答までがスムーズだと思います。

maiboutan1
質問者

お礼

色々とアドバイスをいただき、ありがとうございます。初めての事だった為、色々とご面倒をおかけいたしました。

  • akauntook
  • ベストアンサー率19% (295/1481)
回答No.1

せっかく頑張って質問してくれたところ、本当に申し訳ないんですが、 Visual BasicはVBAじゃなくてVBなんですね。 Visual Basic for ApplicationsがVBAで似てると思ったかもしれませんが、違うものなんですね。 さらに、カテゴリーをよく見てみると、 投稿カテゴリ: [技術者向] コンピューター > プログラミング・開発 > Visual Basic なんですね。 これは困りました。 これだけでは可哀想なので、アドバイスもしようかと思いましたが、質問に直接アドバイス出来るところがないんですね。 色々コピペしただけじゃ、何したのかわからないですし、せっかくの画像は見づらいと言うより、文字は全て読めませんでした。 1.https://www.excel-excel.com/tips/vba_451.html 2.http://32877.xii.jp/index.php/view/255 このあたりが簡単そうだったので、これ見てやればいいと思います。

maiboutan1
質問者

お礼

色々とご指導をいただき、ありがとうございました。何もわからずお恥ずかしい次第です。 リンクのアドレスを拝見させていただきます。 引き続きご質問をさせて頂いてもよろしいでしょうか?

関連するQ&A