- ベストアンサー
テキストボックスへにセル値の入力
エクセルマクロの初心者で恐縮なのですが、ユーザーフォームのテキストボックスに下記のようなことは可能でしょうか? 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか? 例1・2)についてどのようなマクロを組めばよいのでしょうか? マクロにお詳しい方、大変申し訳ございませんか、ご指導お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? A1のデータを反映するとした場合 OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub > 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか 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 でいかがでしょう
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 本来、VBA自体のタイミングとしては、コマンドボタンの方がよいような気がします。 質問の内容というか、タイミングが伝わってきませんので、質問の文章の内容で、オプションボタンが二つしかないなら、このようにすればよいです。片方のボタンの設定は必要ありません。 実際、本来のそうするための趣旨が明確ではないと、分からないです。 '------------------------------------------- Private Sub UserForm_Initialize() 'UserForm の起動時のオプションボタン1のデフォルトの値 OptionButton1.Value = True End Sub Private Sub OptionButton1_Change() If OptionButton1 Then 'True は書く必要がありません Worksheets("Sheet1").Range("B1").ClearContents TextBox1.ControlSource = "Sheet1!A1" Else Worksheets("Sheet1").Range("A1").ClearContents TextBox1.ControlSource = "Sheet1!B1" End If End Sub
- kmetu
- ベストアンサー率41% (562/1346)
Private Sub OptionButton2_Click() TextBox1 = "" TextBox1.SetFocus End Sub こちらにしたほうが便利かもしれません。
お礼
ありがとうございました。 私がやりたいことへのご返答だったので、大変助かりました。 この方法を使用させていただきます。