• ベストアンサー

ExcelVBAのユーザーフォームでデータ反映方法。

こんにちは。 詳しい方、お知恵をお貸しください。 Excelのワークシートに保持しているデータを ユーザーフォームのTextBoxに反映させたいのですが どのようにすればよろしいのでしょうか? ◎条件は以下のとおりです。 1.ユーザーフォームを表示させた時、TextBox(s1)にワークシート(ini) のセル(B1)を反映させる。 2.ユーザーフォーム上で編集可能な状態とし、OKボタン押下で TextBox(s1)のデータをワークシート(ini)のセル(B1)に反映・保存。 また、別ユーザーフォームで参照のみ可能な物を作っておりますが、 編集不可能な状態で表示させる方法も教えていただけたら嬉しいのですが。。。 どうぞ、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>TextBox(s1) とはTextBoxのオブジェクト名を「s1」に変更してあるということですか? そうであれば Private Sub UserForm_Initialize() UserForm1.s1.Text = Sheets("ini").Range("B1").Value End Sub Private Sub CommandButton1_Click() Sheets("ini").Range("B1").Value = UserForm1.s1.Text UserForm1.Hide End Sub のようなコードで1,2はできるはずです。 そうでなければ「TextBox1.Text」のように書かなくてはなりません >編集不可能な状態で表示させる方法 表示したB1セルの内容をを編集不可にするでしょうか?、 ・TextBoxではなくLabelを利用する ・CommandButton_Clickで書き戻しをしない などが考えられます。

JOCX
質問者

お礼

zap35さん ありがとうございました。 想定していた通りの動作で完成できました。 そして、とても勉強になりました!!

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

1.ユーザーフォームを表示させた時、TextBox(s1)にワークシート(ini) のセル(B1)を反映させる。 Private Sub UserForm_Initialize() TextBox1.Value = Sheets("Sheet1").Range("B1").Value End Sub 2.ユーザーフォーム上で編集可能な状態とし、OKボタン押下で TextBox(s1)のデータをワークシート(ini)のセル(B1)に反映・保存。 Private Sub CommandButton1_Click() Sheets("Sheet1").Range("B1").Value = TextBox1.Value End Sub こういった事でしょうか?

JOCX
質問者

お礼

hallo-2007さん ありがとうございました。 とても勉強になりました!!

関連するQ&A