プロが教える店舗&オフィスのセキュリティ対策術

お世話になります
VBAフォーム内のTXTBOXの入力についてですが

「今まで」
TXTBOXに値入力ボタンクリック時に書き込み処理でしたが

「わからないこと」
次に開くとTXTBOXに(セル)に入力した値を取得しボタンクリックなしでリアルタイムに書き込みをしたいのですが、
イメージ的に、テキストボックスとセルのリンクみたいな感じが理想です、分かる方宜しくお願い申し上げます。

Excel 2003
XP Pro
VBA 初心者以下

A 回答 (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

この回答への補足

ありがとうございました

補足日時:2007/06/19 21:33
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます
先ほどツタヤに行き、書籍を探しに行ってきたのですが
考えに合った書籍がなく帰ってきた所でした。
確認したところ理想的な回答でしたありがとうございます

お礼日時:2007/06/19 21:38

ユーザーフォームをSheet1から立ち上げて、Sheet1のA1と関連付けたいなら、controlsourceにA1。


シートを特定するならば、Sheet1!A1のように設定すれば、書き込みも読み込みも不要になります。

わざわざ、Changeイベントなどを使わないはずです。
    • good
    • 0

Changeイベントでも可能です。


ユーザーフォームにTextBox1があるとして、以下のマクロをユーザーフォームのマクロシートに貼り付けてみてください

Private Sub TextBox1_Change()
  WorkSheets("Sheet1").Range("A1").Value = UserForm1.TextBox1.Text
End Sub

テキストボックスに文字を入力すると、リアルタイムでSheet1のA1セルの表示も変わるはずです。

この回答への補足

確認させていただいたところ、

「解決点」
確かにリアルタイムに入力可能ですが、

「未解決点」
次回マクロを立ち上げた時の値の取得ができません

よろしくお願い申し上げます

補足日時:2007/06/19 19:08
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます
補足に記載しているように問題点がまだ残ってますが
お礼申し上げます

お礼日時:2007/06/19 19:14

' // 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でした
よろしくお願い申し上げます

補足日時:2007/06/19 19:14
    • good
    • 0
この回答へのお礼

迅速なお返事ありがとうございます

お礼日時:2007/06/19 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!