• ベストアンサー

エクセルユーザーフォームのチェックボックスの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

  • ユーザーフォームチェックボックスの値をセル入力

    ユーザーフォームのチェックボックスでチェックされたCaption文字をExcelシート範囲(B2:B9)の入力されている文字の最後尾から続けて入力したいのですがどなたかコードが解る方よろしくお願いします。

  • セルの値をユーザーフォームのテキストボックスに

    エクセルの質問です。 シート1にボタンを設置してユーザーフォームを呼び出すようにしています。 ユーザーフォームにテキストボックスを用意してて、シート1のセル(A1)に記入された数字を、ボタンを押した時に立ち上がったユーザーフォームのテキストボックスに表示されるようにしたいのですが、どうしたらいいのでしょうか?

  • ユーザーフォーム入力後の値の貼付け方は?

    EXCELのVBEでユーザーフォームを作成しました。 テキストボックスに入力した値をEXCELシート上に 反映させるにはどのようにすればいいのでしょうか? EXCELシート上ではセルではなくてやはり テキストボックスに値が入るようにしなくてはできないのでしょうか? 初心者です。教えてください!

  • エクセルのユーザーフォームについて教えてください。

    エクセルのユーザーフォームでマルチページを作りました。Captionに好きな文字を設定すればタブの表記が変わると思うのですが、テキストボックスの値と連動させて、変更するって出来るのでしょうか? 単純に代入が出来ないようなのですが???Page1.Caption = "いちご" としたら、怒られました。 試行錯誤したのですが?出来ません。 どなたか?詳しい方教えて頂けませんでしょうか? よろしくお願いいたします。

  • ユーザーフォームのチェックボックスIndex

    Excel 2002を使用しています ユーザーフォームのVBAを教えてください ユーザーフォームにチェックボックスをつけたリストを表示しました .ListStyle = fmListStyleOption リストボックスは5列ですが チェックしたリストボックスの1列の値は ListBox1.List(ListBox1.ListIndex)でとりだせましたが 2列目以降の他の列の値はどうとりだせばいいのでしょうか? また、リストボックスを選択するとチェックボックスにチェックが入り文字が反転され もう一度チェックするとチェックボックスのチェックが外れますが チェックボックスにチェックが入っている状態かどうかを判別する方法を教えてください チェックボックスのIndexも取得したいのですが。

  • エクセルVBA「ユーザーフォーム→セルへの入力」ほか

    エクセルVBA「ユーザーフォーム→セルへの入力」ほか 連日の質問にご回答頂き大変に感謝しております。 昨日投稿したユーザーフォームからのセルへ入力に関する質問です。 下記画像のようなユーザーフォームを作成したのですが、「合計」の数値をワークシートの("コンボボックスの文字列:"「番号(この場合01)」")のセル番地に入るように組みたいのですが、どんなコーディングがよろしいでしょうか。(つまり、画像の場合は「1年2組」列の「01」行に「合計」の値を入力したいのです) さらにもう一点質問致します。 VBAとそうでない部分両方の質問となるのですが、見ての通り私ベルマークを集計するためのブックを作成しています。 ベルマークの枚数を集計する方法が思いつかないのですが、ユーザーフォームを利用して、ベルマーク番号別の「点数別(0.1点・0.2点・・・)枚数」を計算したいのですが、どのようなコーディング、また、シートを作れば良いのでしょうか。お知恵を貸して頂けると幸いです。 以上ご回答いただけるとうれしいです。よろしくお願いします

  • ユーザーフォームの値を指定のセルに入力

    エクセルのシート上のフォームで リストのボックスの値を上下キーで値を選択エンターキーで選択した値をシートの指定したセルに入力 フォームを閉じる このようなことをさせたいのですが どのようにすればよいでしょうか よろしくお願いいたします。

  • excelでVBAでユーザーフォームのリストBOX

    下記VBAの作成の仕方を教えていただけないでしょうか。 やりたいこと (1)sheet2のA1セル~A5セルまでの間の間をユーザーフォームのリストボックスに登録する (2)sheet1のA1セルをクリックすると、ユーザーフォームが起動し、任意のリストをクリックすると、 その値がA1セルに格納され。ユーザーフォームが終了する。 ※コマンドボタンは使わずにお願いします。なおexcel2000です。

  • エクセルのユーザーフォームについて

    エクセルマクロのユーザーフォームのテキストボックスに セルの値を表示する方法で質問です。 ユーザーフォームを表示するとその時点での セルの値はテキストボックスに表示されているのですが ユーザーフォームを表示したまま 別のブックのセルを選んだ際に そのセルの内容がテキストボックスに表示されるようにしたいです。 ボタンや、なにかをするわけではなく 自分で任意のセルを選択したら、という事です。 ユーザーフォームには selectionchange などがないのでどうすれば良いかわかりません。 宜しくお願いします。

  • ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

    エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

専門家に質問してみよう