• ベストアンサー

エクセル ユーザーフォームで

ユーザーフォームのテキストボックスの中にセルA1を表示させたい場合はどうすればいいのでしょうか? 「Private Sub TextBox1_Change() End Sub」 の中に何かを入れるのでしょうか? よろしくお願いします。

noname#150256
noname#150256

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

  • ベストアンサー
回答No.3

またまたtakachan7272です。 B1にはA1-10の値が入っているんですよね? それならば、もう1行下記コード追加するだけです。 UserForm1.TextBox1.Value = Range("B1")

noname#150256
質問者

お礼

TextBox2かな? takachan7272様 大変助かりました!!! 3回もご回答ありがとうございます。

その他の回答 (3)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.4

テキストボックスのプロパティー内に「CntrolSouce」をA!とします。 尚、プロパティー内のオブジェクト名に「売上金額」と入れておくとVB内で変数としてとり扱えます。 「Private Sub TextBox1_Change() End Sub」 は Private Sub 金額_Change() 利益=売上金額ー原価 End Sub といったようにイベントが発生したときの処理を記述します 蛇足ですが、chenge()はキータッチ毎にイベントが発生しますのでexit()の方がよろしいかと

noname#150256
質問者

お礼

ぉぉーできました。 大変参考になりました。ご回答ありがとうございます。

回答No.2

ユーザーフォームは既に表示されているという事ですね。 (シート1のA1に入力された場合) VisualBasicEditorのsheet1に下記コードを書く ------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) UserForm1.TextBox1.Value = Range("A1") End Sub ------------------------------- ちょっと試してみて下さい。 Excel2003ではOKでした。

noname#150256
質問者

お礼

できました!!!! ありがとうございます!! ちなみにB1にはA1-10が入っていて それも連動させて表示させたいです 泣 ユーザーフォームにB1用のテキストボックスは作っています。 再度ご回答いただければ幸いです。

回答No.1

ユーザーフォームを表示するのは、A1セルに値が入った時ですか? それとも、フォームにボタンが設置されていて、それが押された時ですか?

noname#150256
質問者

お礼

早速の返信ありがとうございます。 A1には常に数字が入っていて ユーザーフォームはショウモデルをフォールスしてあり A1が変化するとそれに伴ってユーザーフォームのテキストボックス内も変化すると言う風にしたいです。 なのでA1=テキストボックス1 にしたいです。 よろしくお願いします。

関連するQ&A

  • ユーザーフォーム上にある「テキストボックス」に小数が入力できない

    以前にユーザーフォーム上のテキストボックスにセル値反映する方法を下記(サンプル1)のようにお教えいただいたのですが、下記のようにマクロを組むとテキストボックスに小数が入力できなくなってしまいます。 どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? お教えください。 事例)「1.234」とテキストボックスに打ち込むと「1」    「0.856」とテキストボックスに打ち込むと「0」と    なってしまいます。 (サンプル1) 'A1のデータを反映するとした場合 'OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub 'B1に反映するとして 'OptionButton2のコード Private Sub OptionButton2_Click() TextBox1 = "" End Sub 'TextBox1のコード Private Sub TextBox1_Change() If OptionButton2 = True Then Sheets("Sheet1").Range("B1") = TextBox1.Value End If End Sub

  • エクセルVBAでユーザーフォームのテキストボックス

    ユーザーフォーム上にテキストボックスを8個設置しました。 そこに数値が入力された場合は自動的にカンマ区切りが表示されるように以下のコードを書きました。 これで希望の動きはしてくれるのですが、このやりかたは正しいでしょうか? また、テキストボックスは8個あるので、それぞれに下記のように8通りコードをかかなければいけないのでしょうか?ご教示ください。 Private Sub TextBox1_Change()   If IsNumeric(TextBox1.Value) Then Application.EnableEvents=False     TextBox1.Text = Format(TextBox1.Value, "#,##0") Application.EnableEvents=True   End If End Sub 途中(2~7)略 Private Sub TextBox8_Change()   If IsNumeric(TextBox8.Value) Then Application.EnableEvents=False     TextBox8.Text = Format(TextBox8.Value, "#,##0") Application.EnableEvents=True   End If End Sub

  • Excel VBA ユーザーフォームのテキストボックスで

    Excel2000or2003でマクロを作っております。 ユーザーフォームのテキストボックスで、例えば時間を入力するとします。 Private Sub TextBox1_Change() Worksheets("Work").Range("B3").Value = TextBox1 End Sub と書いたところ、セルには数値としてではなく文字として入ってしまうようで、後のルーチンで計算できません。 数値として扱うには、どうしたら良いでしょうか? お手数ですが、ご教授願います。

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

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

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

    パスワード入力用のしかけです。 ワークシートに配置したコマンドボタンを押してユーザーフォームを呼び出します。 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回でユーザーフォームを消すにはどうすればよいのでしょうか? ユーザーフォームは使ったことがないのでわかりません。 よろしくお願いします。

  • Excel ユーザーフォームの入力値をシートに転記

    Excelでユーザーフォームを作りました。 ユーザーフォームには、テキストボックスを2個、ボタンを1個("記入"という文字が入っています)置いてあります。 テキストボックスに入れた数値をSheet1のセル"C24","C25"に転記したいので、ユーザーフォームのコードを次のようにしましたが、エラーメッセージは出ないかわりに何も動いてくれません。 「どこ」と「なに」が違いどうするのが正しいのか教えて下さい。よろしくお願いします。 Private Sub Tbox1_Change() a = Tbox1.Value End Sub ---------------------------- Private Sub Tbox2_Change() b = Tbox2.Value End Sub ---------------------------- Sub 記入Button_Click() '入力値をSheet1に転記 Dim a As Range Dim b As Range Sheets("Sheet1").Select Set a = Range("C24") Set b = Range("C25") End Sub

  • エクセル ユーザーフォームでVLOOK

    ユーザーフォームのテキストボックスで、ご教示お願いいたします。 現在、以下のようなコードこちらで教えていただきセルに入力をしております。 テキストボックス5に値を入れ、 listのシートから該当する文字をテキストボックス6に表示させたいと思っております。 ■現在のコード '// Private Sub CommandButton1_Click() Dim LastRow As Long 'ここはキャメル形式やパスカル形式にします/大文字は定数です。 Dim i As Long '/テキストボックスに値があるか調べる For i = 1 To 7 Next i '/セルに書き込み With Worksheets("Sheet1") LastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 For i = 1 To 7 .Cells(LastRow, i).Value = Me.Controls("TextBox" & i).Value Next End With '/TextBox1-7をクリア If MsgBox("テキストボックスを空にしてよろしいですか?", vbQuestion + vbYesNo) = vbYes Then For i = 1 To 7 Me.Controls("TextBox" & i).Value = "" Next i End If 'TextBox1にフォーカスを移動 Me.TextBox1.SetFocus End Sub ■付け足したいコード Private Sub textbox5_change() Dim temp, x temp = Me.textBox5.Value If IsNumeric(temp) Then temp = Val(temp) x = Application.VLookUp(temp, Sheets("list").Range("a1:b20"), 2, False) If Not IsError(x) Then Me.TextBox6.Value = x Else MsgBox Me.TextBox5.Value & " はリストにありません" End If End Sub 【質問内容】 付け足したいコードは上記の通りですが、どのように付け足せばいいのかが分からず、 困っております。 度々で申し訳ありませんが、テキストボックス5の値を見て、 テキストボックス6に表示させるやり方をご教示お願いいたします。

  • ユーザーフォームの結果を

    お世話になります。 下記の様な記述の ユーザーフォームで、 テキストボックスを3つ設け、それぞれに 年、月、日を入力し、その値を シートのあるセルに表示したいのですが、 例えば、月や日が一桁の場合には最初に「0」を 付けたいのですが、うまくいきません。 何卒、ご教示下さいます様お願い申し上げます。       記 Private Sub UserForm_initialize() SpinButton1.Max = 2050 ' 初期設定 SpinButton2.Max = 12 SpinButton2.Min = 1 SpinButton3.Max = 31 SpinButton3.Min = 1 SpinButton1.Value = Year(Date) SpinButton2.Value = Month(Date): If month_mm < 10 Then month_mm = "0" & month_mm SpinButton3.Value = Day(Date): If day_dd < 10 Then day_dd = "0" & day_dd End Sub Private Sub SpinButton1_Change() Call DAY_PUT End Sub Private Sub SpinButton2_Change() Call DAY_PUT End Sub Private Sub SpinButton3_Change() Call DAY_PUT End Sub Sub DAY_PUT() TextBox1.Value = SpinButton1.Value TextBox2.Value = SpinButton2.Value TextBox3.Value = SpinButton3.Value End Sub Private Sub CommandButton1_Click() tbox1 = TextBox1.Value tbox2 = TextBox2.Value tbox3 = TextBox3.Value Workbooks("集計表").ActiveSheet.Range("a1") = tbox1 & tbox2 & tbox3 Unload Me End Sub

  • EXCEL VBA ユーザーフォーム内のテキストボックスを一括処理する方法について

    EXCEL VBAのユーザーフォームについて質問があります。 ユーザーフォームを作り、その中にコンボボックスを1個、テキストボックスを100個設置する。 コンボボックスの値が1のときはテキストボックス1~テキストボックス50までのEnabledをFalseに設定し、 コンボボックスの値が2のときはテキストボックス1~テキストボックス100までのEnabled をFalseに設定する。 このとき、TextBox1.Enabled = False、TextBox2.Enabled = False・・・と一つ一つ書いていくのではなく、 セルを処理するときと同様に、テキストボックスの番号を変数にして処理することは可能でしょうか。 Private Sub ComboBox1_Change()  Dim i As Integer   If ComboBox1.Value = 1 Then   For i = 1 To 50   TextBox(i).Enabled = False   Next i   ElseIf ComboBox1.Value = 2 Then   For i = 1 To 100   TextBox(i).Enabled = False   Next i   End If End Sub というような処理をイメージしているのですが、うまくいきません。どうぞよろしくお願いいたします。

  • ユーザーフォームで

    お世話になります。 ユーザーフォームで、ユーザーに日付を選択してもらおうと 思っており、初期値として当日の日付を入れています。 テキストボックスを年、月、日と三つに分けています。 下記の記述です。 しかし、前の日付にも戻る事が出来なく、また、年は進められる のですが、同時に月と日も進んでしまいます。 年、月、日、それぞれ別々に進めたり遅らせたりしたいのですが、 どの様に記述したらよろしいでしょうか。 ご教示頂きたく宜しくお願い申し上げます。        記 Private Sub UserForm_initialize() TextBox1.Value = Year(Date) TextBox2.Value = Month(Date) TextBox3.Value = Day(Date) End Sub Private Sub SpinButton1_Change() TextBox1.Value = Year(Date) + SpinButton1.Value TextBox2.Value = Month(Date) + SpinButton1.Value TextBox3.Value = Day(Date) + SpinButton1.Value End Sub

専門家に質問してみよう