• 締切済み

テキストボックスに入力したデータをsheet2のセルにデータ入力する方法

textboxを5つ設置したユーザーフォームを作りました。ユーザーフォームにボタンをつくり、そのボタンをクリックするとtextboxに入力したデータがsheet2の複数のセルにデータ入力されるようにしたいのですが、やり方がわかりません。

みんなの回答

回答No.4

ユーザーフォームに、TextBox1~TextBox1と、CommandButton1、その他にLabel1とSpinButton1があるとします。 Label1は現在編集中の行です。 SpinButton1は現在編集行を移動するためです。 [ CommandButton1を押した時だけCellを変更する場合 ] Private Sub setTextBox(row As Long) '行範囲チェック If row < 1 Then row = 1 If row > 65536 Then row = 65536 '現在行表示 Label1.Caption = row 'ControlSource設定 TextBox1.Text = Sheet2.Cells(row, 1).Value TextBox2.Text = Sheet2.Cells(row, 2).Value TextBox3.Text = Sheet2.Cells(row, 3).Value TextBox4.Text = Sheet2.Cells(row, 4).Value TextBox5.Text = Sheet2.Cells(row, 5).Value '最初はTextBox1を選択 TextBox1.SetFocus TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1.Text) 'シートの表示(無くてもいい) Sheet2.Select Sheet2.Rows(row).Select End Sub Private Sub CommandButton1_Click() Dim row As Long row = Val(Label1.Caption) 'cell設定 Sheet2.Cells(row, 1).Value = TextBox1.Text Sheet2.Cells(row, 2).Value = TextBox2.Text Sheet2.Cells(row, 3).Value = TextBox3.Text Sheet2.Cells(row, 4).Value = TextBox4.Text Sheet2.Cells(row, 5).Value = TextBox5.Text '次の行へ setTextBox Val(Label1.Caption) + 1 End Sub Private Sub UserForm_Activate() setTextBox 1 End Sub Private Sub SpinButton1_SpinDown() setTextBox Val(Label1.Caption) + 1 End Sub Private Sub SpinButton1_SpinUp() setTextBox Val(Label1.Caption) - 1 End Sub [ ControlSourceを設定して、TextBoxを変更すると同時にCellも変更する場合 ] Private Sub setControlSource(row As Long) '行範囲チェック If row < 1 Then row = 1 If row > 65536 Then row = 65536 '現在行表示 Label1.Caption = row 'ControlSource設定 TextBox1.ControlSource = "Sheet2!A" & Trim(Str(row)) TextBox2.ControlSource = "Sheet2!B" & Trim(Str(row)) TextBox3.ControlSource = "Sheet2!C" & Trim(Str(row)) TextBox4.ControlSource = "Sheet2!D" & Trim(Str(row)) TextBox5.ControlSource = "Sheet2!E" & Trim(Str(row)) '最初はTextBox1を選択 TextBox1.SetFocus TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1.Text) 'シートの表示(無くてもいい) Sheet2.Select Sheet2.Rows(row).Select End Sub Private Sub CommandButton1_Click() setControlSource Val(Label1.Caption) + 1 End Sub Private Sub UserForm_Activate() setControlSource 1 End Sub Private Sub SpinButton1_SpinDown() setControlSource Val(Label1.Caption) + 1 End Sub Private Sub SpinButton1_SpinUp() setControlSource Val(Label1.Caption) - 1 End Sub

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

ANo.2です。 >ボタンを押してTexBoxに入力したデータをSheet2のそれぞれのセルに入力・・・ 書いた通りで、私の説明した方法は、TexBoxと特定のセルを関連付ける方法で、ボタンを押しません(押す必要がありません)。 質問の「sheet2の複数のセル」、補足の「Sheet2のそれぞれのセル」と言う言葉がいろいろ解釈できるのでわからないのですが・・・ TextBox1 -> sheet2のA1 というような、「それぞれのtextboxをそれぞれの決まったセルに関連付ける」場合は、私の方法が簡単だと思います。 フォームの設計画面でTextBox1を選択して、プロパティウインドのControlSourceの所に「sheet2!A1」と書き込む。 ボタンを押すと、 TextBox1 -> A1 TextBox2 -> B1 ・・・ TextBox5 -> E1 次にボタンを押すと、 TextBox1 -> A2 TextBox2 -> B2 ・・・ 次にボタンを押すと、 TextBox1 -> A3 TextBox2 -> B3 ・・・ と言うようなことを「それぞれのセル」と言うなら、ANo.1さんの方法を使うことになります。 こんな説明でわかってもらえますか?(説明が苦手だ、長くなる)

r-suke
質問者

補足

ボタンを押すと、 TextBox1 -> A1 TextBox2 -> B1 ・・・ TextBox5 -> E1 次にボタンを押すと、 TextBox1 -> A2 TextBox2 -> B2 ・・・ 次にボタンを押すと、 TextBox1 -> A3 TextBox2 -> B3 ・・・ このように入力するには Sheets("Sheet2").Cells(1,1).Value=TextBox1.Text このコードをどこに打てばいいのですか?

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

>textboxを5つ設置したユーザーフォームを作りました。 >textboxに入力したデータがsheet2の複数のセルにデータ入力されるようにしたい と言うのが、 TextBox1 -> sheet2!A1 TextBox2 -> sheet2!A2 ・・・ TextBox5 -> sheet2!A5 という風に、TextBoxの値をsheet2の特定のセルに代入したいのなら、TextBoxのControlSourceプロパティを設定すれば、ボタンを押さなくても常時sheet2のセルを更新できますよ。 たとえば、TextBox1のControlSourceをsheet2!A1にすると、textbox1の内容の変更がリアルタイムでsheet2のA1に反映されます。

r-suke
質問者

補足

ボタンを押してTexBoxに入力したデータをSheet2のそれぞれのセルに入力されるようにしたいのですが、詳しく教えてもらえないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

VBAでの操作になります。 Sheets("Sheet2").Cells(1,1).Value=TextBox1.Text

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • テキストボックスをセルへ。

    3つ聞きたいです。 ユーザーフォームのテキストボックスに記入した内容を 最終行を取得して、指定の列にコメントを入力させるためには どうするのがいいでしょうか。下記で、エラーが出てしまいます。 .cells(lrow + 1, "c").addcomment = textbox5.value それと、一つのテキストボックスの内容を複数の セルへ記入させるには、下記をどうすればいいですか。 .cells(lrow + 1, "X:Z").value = textbox6.value あと、ショートカットキーで(例えば、CTRL + Q) ユーザーフォームを起動させるにはどうすればよいですか。 するとしたら、そのコードはどこに表示させるのがいいでしょうか。 いろいろ、お願いですが教示お願いします。

  • セルの値をユーザーフォームのテキストボックスに

    エクセルの質問です。 シート1にボタンを設置してユーザーフォームを呼び出すようにしています。 ユーザーフォームにテキストボックスを用意してて、シート1のセル(A1)に記入された数字を、ボタンを押した時に立ち上がったユーザーフォームのテキストボックスに表示されるようにしたいのですが、どうしたらいいのでしょうか?

  • セルの内容をテキストボックスへ反映

    ユーザーフォームを用いて勤怠打刻のシステムを作っています。 ユーザーフォームの構成は下記の通りです。 TextBox1に時間(hour)を入力 TextBox2に分(minits)を入力 →TextBox3に入力した時間分を表示させ、G列H列に反映 TextBox4に打刻する年月日をB列から拾う シート   A   B ・・・ G   H 1     2019/10/1   08:00 19:00  2     2019/10/2 08:00  17:00 3     2019/10/3 08:00 17:00 ユーザーフォームはG列とH列に入力し、 G列に入力するとH列に移動、 H列に入力すると一つ下のG列へ移動と コマンドボタンを押すと自動でジグザグに動くようにしています。 TextBox4にG列・H列に対応するB列の値を表示させたいと思っています。 例えば、G1を選択しているとTextBox4に2019/10/1を表示、H2を選択していると2019/10/2を表示などです。 年月日は表示されるものの、セルの選択が変わっても TextBox4の値が変わらない状況です。 ご教授いただければ幸いです。

  • エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい

    現在顧客名簿シートがあり、修正フォームから顧客情報を修正できるようにマクロを組んでいる最中です。  例えば、textbox1→氏名、textbox2→生年月日、textbox3→住所、としていて、住所のみ変更情報を入力し修正ボタンをクリックすると氏名、生年月日が未入力のため顧客名簿の氏名、生年月日が消えてしまいます。  このような場合、入力がないtextboxのシート転記プログラムを飛ばす、若しくは入力があるtextboxのみシート転記を実施する方法を教えてください。

  • 指定したシートに入力する。

    よろしくお願いします。 ユーザーフォームのテキストボックスのデータをコマンドボタンをクリックしたときに 指定シート(AAA)の最終行+1(C)に入力する。 Private Sub CommandButton5_Click() With Worksheets("AAA") .Range("C65536").End(xlUp).Row 1 = TextBox4 End With End Sub と、したのですが、シート(AAA)に入力されません。 よろしくご教示お願いします。

  • エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能につ

    エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能について 前提条件)1つのフォームにComboboxとTextboxが5列15行に整列して配置してあります。 例えば、TextBox1~3にそれぞれ入力し、その条件から外部データ取込機能で抽出される値をTextbox4へ表示させる試みを行っています。処理としては、TextBox1~3に入力した値は特定シートのセルA1~C1にセットします。 セルA1~C1にセットされることにより、外部データ取込のパラメータ設定で「セルの値が変わる時に自動的に更新する」としてあるため、3つの条件よりある値が特定シートのセルA2に抽出され、そのセルの値をTextbox4へ返すことをしようと挑戦中です。そこでつまづいてしまい質問させて頂きます。フォームを起動しTextboxから入力した内容が特定シートのセルにセットされることは確認できたのですが、外部データ取込機能で値は抽出はされているようなんですが、特定シートのセルA2には表示されていません。フォームを閉じるとセルA2に呼び出されてきた値が確認できます。フォームが開いているとシートをActiveにしても(VBAの記述にて)更新されないんでしょうか?フォームが起動されたまま、シートで展開している動きをそのままフォームの別texeboxへ戻り値として利用する方法を教えて下さい。waitやActiveなどいろいろ試してみました。下記にはActiveの記述はありませんが、色々試してみて上手くいきません。 (参考) Private Sub TextBox23_Exit(ByVal Cancel As MSForms.ReturnBoolean) Sheets("Meisai").Range("F1") = TextBox23.Value waitTime = Now + TimeValue("0:00:02") Application.Wait waitTime Sheets("Hijyu").Select TextBox27.Value = Sheets("Hijyu").Range("A2").Value End Sub よろしくお願いします。

  • ExcelVBAのユーザーフォームでデータ反映方法。

    こんにちは。 詳しい方、お知恵をお貸しください。 Excelのワークシートに保持しているデータを ユーザーフォームのTextBoxに反映させたいのですが どのようにすればよろしいのでしょうか? ◎条件は以下のとおりです。 1.ユーザーフォームを表示させた時、TextBox(s1)にワークシート(ini) のセル(B1)を反映させる。 2.ユーザーフォーム上で編集可能な状態とし、OKボタン押下で TextBox(s1)のデータをワークシート(ini)のセル(B1)に反映・保存。 また、別ユーザーフォームで参照のみ可能な物を作っておりますが、 編集不可能な状態で表示させる方法も教えていただけたら嬉しいのですが。。。 どうぞ、よろしくお願いいたします。

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

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

  • Excell(2003) VBA UserForm上のSheetの参照方法は

    Excell2003にてuserForm1にコントロールとしてスプレッドシートを載せています。 このuserForm1には、別にテキストボックス(textbox1)とコマンドボタンが二つ(commandButton1とCommandButton2)があります。 commandButton1がクリックされたとき、textbox1に入力された値をチェックしたのち、Me(userForm)上のSheet1の適当なセル(たとえばA2)にその値を入力したい。  また、CommandButton2がクリックされたときは、Sheet2のA2に入力したい。その場合Sheet2を表示する動作も必要です。  この場合 Q:本体のSheetではなく、フォーム上のSheetを指定する方法 Q:複数のSheetからなるフォーム上のspledSheetのいずれかを表示する方法  はどのようにしたら良いのでしょう。