| 
    
     |  | こんばんは。 
 >
 >ユーザーフォームからシート上の各セルへ入力したいと思っています。
 >
 >TextBox1 = Worksheets("Sheet1").Range("A1")
 >
 >では、入力済みのセルの修正ができないので、ControlSourceでリンクさせようと思い、
 これで、入力済みのデータをテキストボックスに戻して、入力完了後に
 今度は逆にセルに戻せばよいのですけどねえ・・・。
 入力完了後というタイミングは、イベントで管理します。
 これは、一例ですが・・・。
 
 Private Sub TextBox1_Enter()
 TextBox1.Value = Worksheets("Sheet1").Range("A1").Value
 End Sub
 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 Worksheets("Sheet1").Range("A1").Value = TextBox1.Value
 End Sub
 
 
 >ネットで調べて、この様なコードを入れてみましたが、全くリンクしません。
 >
 >Sub UserForm1_Initialize()
 > UserForm1.TextBox1.ControlSource = "A1"
 >End Sub
 これは、アクティブシートのセルA1と結ばれていますけど、よろしいですか?
 
 >Sub UserForm1_Initialize()
 UserForm1.TextBox1.ControlSource = "Sheet1!A1"
 
 >End Sub
 より正確には、上記でしょうか?
 
 書き込みは、Textbox1から、フォーカスが移るタイミングですから、
 テストでは、コマンドボタンも作成しておいて、フォーカスがこのコマンドボタン
 に移ったタイミングでセルに反映されます。
 コマンドボタンというのは、例ですから、別のテキストボックスを作成して
 試しても大丈夫です。
 
 ControlSource を使う場合は、
 イベントを使うなら、TextBox1_BeforeUpdateでしょうけど、これは、余計な話でした。
 
 |  |