• ベストアンサー

エクセルユーザーフォームのチェックボックスのCaptionにセルの値を入れたい。

表題の通りで、エクセルユーザーフォームにチェックボックスを作成し、そのCaptionにセルの値を入れたい場合、どのようにすればいいのでしょうか。 つまり、シートのセルの値が変われば、ユーザーフォームのチェックボックスの文字が変わっているようにしたいのです。 エクセル2003です。 よろしくお願い致します。

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

  • ベストアンサー
noname#89471
noname#89471
回答No.3

あまり詳しくないのですが... 間違っていたら、ごめんなさい。 UserFormをLoadしたときに発生するイベント、UserForm_Initializeとして、 Private Sub UserForm_Initialize() UserForm1.CheckBox1.Caption = Range("A1").Value End Sub ではダメですか? セル"A1"をUserForm1.CheckBox1.Captionの対象としました。 ※これだと、Sheetが変わると、Sheetごとの"A1"の値をCheckBox1.Captionの文字として表示します。

pc-cad
質問者

お礼

これです。 思い通りになりました。 ありがとうございました。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

セルA1が対象とすると、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A1" Then Exit Sub UserForm1.CheckBox1.Caption = Target.Value End Sub シートのチェンジイベントで行なうとか?

pc-cad
質問者

お礼

3人めの回答者の方の方法で、思い通りになりました。 おそらく私の質問のしかたがわかりにくかったのだと思います。 ごめんなさい。 標準モジュールやユーザーフォームはよく使うのですが、シートモジュールは使ったことがありません。 これから勉強してみます。 たまにエクセルの質問を投稿してます。 また何かあったら教えて下さい。 ありがとうございました。

pc-cad
質問者

補足

セルに値を入れた時には、その文字が入りました。 しかしその後、再度ユーザーフォームを開くと、文字が消えてしまいます。 セルの値が変更した場合にはその値がともなって変更し、セルの値を変更していない場合は、そのままの数字が残るようにしたいです。 いかがでしょう。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

シートモジュールに記述します。 シートのChangeイベントを使います。 TagretをA1セルに限定しています。 Private Sub Worksheet_Change(ByVal Target As Range) 'A1セル以外が変更されたら何もしない If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub UserForm1.CheckBox1.Caption = Target.Value End Sub

pc-cad
質問者

お礼

3人めの回答者の方の方法で、思い通りになりました。 おそらく私の質問のしかたがわかりにくかったのだと思います。 ごめんなさい。 標準モジュールやユーザーフォームはよく使うのですが、シートモジュールは使ったことがありません。 これから勉強してみます。 たまにエクセルの質問を投稿してます。 また何かあったら教えて下さい。 ありがとうございました。

pc-cad
質問者

補足

セルに値を入れた時には、その文字が入りました。 しかしその後、再度ユーザーフォームを開くと、文字が消えてしまいます。 セルの値が変更した場合にはその値がともなって変更し、セルの値を変更していない場合は、そのままの数字が残るようにしたいです。 いかがでしょう。

関連するQ&A