- ベストアンサー
Excel VBA フォーム内のTXTBOX 値取得について
お世話になります VBAフォーム内のTXTBOXの入力についてですが 「今まで」 TXTBOXに値入力ボタンクリック時に書き込み処理でしたが 「わからないこと」 次に開くとTXTBOXに(セル)に入力した値を取得しボタンクリックなしでリアルタイムに書き込みをしたいのですが、 イメージ的に、テキストボックスとセルのリンクみたいな感じが理想です、分かる方宜しくお願い申し上げます。 Excel 2003 XP Pro VBA 初心者以下
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Change の方が良いかも。ということで変更しました。 Private Sub UserForm_Activate() TextBox1.Text = Worksheets("Sheet1").Range("A1").Value End Sub Private Sub TextBox1_Change() Worksheets("Sheet1").Range("A1").Value = TextBox1.Text End Sub
その他の回答 (3)
- nishi6
- ベストアンサー率67% (869/1280)
ユーザーフォームをSheet1から立ち上げて、Sheet1のA1と関連付けたいなら、controlsourceにA1。 シートを特定するならば、Sheet1!A1のように設定すれば、書き込みも読み込みも不要になります。 わざわざ、Changeイベントなどを使わないはずです。
- zap35
- ベストアンサー率44% (1383/3079)
Changeイベントでも可能です。 ユーザーフォームにTextBox1があるとして、以下のマクロをユーザーフォームのマクロシートに貼り付けてみてください Private Sub TextBox1_Change() WorkSheets("Sheet1").Range("A1").Value = UserForm1.TextBox1.Text End Sub テキストボックスに文字を入力すると、リアルタイムでSheet1のA1セルの表示も変わるはずです。
お礼
早速のお返事ありがとうございます 補足に記載しているように問題点がまだ残ってますが お礼申し上げます
補足
確認させていただいたところ、 「解決点」 確かにリアルタイムに入力可能ですが、 「未解決点」 次回マクロを立ち上げた時の値の取得ができません よろしくお願い申し上げます
- KenKen_SP
- ベストアンサー率62% (785/1258)
' // Sheet1!A1 に書き込む例 Private Sub TextBox1_KeyUp( _ ByVal KeyCode As MSForms.ReturnInteger, _ ByVal Shift As Integer _ ) ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Me.TextBox1.Text End Sub
お礼
迅速なお返事ありがとうございます
補足
お返事ありがとうございます 確認させて頂いたところ ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Me.TextBox1.Text でエラーが出ます。 エラー9でした よろしくお願い申し上げます
お礼
迅速な回答ありがとうございます 先ほどツタヤに行き、書籍を探しに行ってきたのですが 考えに合った書籍がなく帰ってきた所でした。 確認したところ理想的な回答でしたありがとうございます
補足
ありがとうございました