| 
    
     |  | ▼123 さん: こんばんは。
 >
 >Book1が表示されている時は
 >TextBox1の値が表示されているのですが、
 >それを保存して、再度Book1を開いてみると
 >また、元のTextに戻っています。
 
 book1.xlsのUserform1のTextbox1のTextプロパティを書き換えて保存しても
 再度Book1.xlsを開けば、書き換えた内容は表示されませんよ。
 
 
 >プロパティ内のTextを直接書き換えなければいけないのでしょうか?
 ↑そういうことです。
 
 お奨めはしませんが、情報として、
 例えば、Book2.xlsのユーザーフォーム(Userform1)には、
 テキストボックス(Textbox1)と変更ボタン(Commandbutton1)と
 決定ボタン(CommandButton2)を用意してみましょう。
 フォームモジュールに
 '===========================================================
 Dim frm
 '=================================================
 Private Sub CommandButton1_Click()
 'Book1.xlsのTextbox1を変更する
 Dim genzai As String
 genzai = TextBox1.Text
 Set frm = Application.Run("book1.xls!get_frm")
 frm.TextBox1.Text = genzai
 End Sub
 '==================================================
 Private Sub CommandButton2_Click()
 '変更を確定する
 Dim genzai As String
 genzai = frm.TextBox1.Text
 Unload frm
 Set frm = Nothing
 Call set_vbp_textbox(Workbooks("book1.xls"), "UserForm1", "TextBox1", genzai)
 End Sub
 '=======================================================================
 Sub set_vbp_textbox(wk As Workbook, formname As String, tbx_nm As String, set_data)
 'ユーザーフォームのテキストボックスを書き換える
 Dim vbc
 With wk.VBProject
 Set vbc = .VBComponents(formname)
 vbc.Designer.Controls(tbx_nm).Text = set_data
 End With
 End Sub
 
 
 Book1.xlsの保存するコードは省略しますが、これでbook1.xlsのテキストボックスの内容が変更されると思います。
 ただ、これは、Book1.Xlsのプログラムを書き変えることになってしまいます。
 (私は、このようなコードは、作成したプログラムの編集用にしか使用していません)
 たぶん、私が123 さんだったら、上記のようなコードにはしないと思います。
 
 変更したbook1.xlsのTextbox1の内容をbook1.xlsの所定のセルに入れてから保存する。
 ユーザーフォームを表示するときにその所定のセルから逆にTexbox1へ設定する。
 という方法がよいと思いますがいかがでしょうか?
 
 
 |  |