重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルでユーザーフォームにテキストボックスを作っていますが
セルデータを一度読み込んだ後はセルデータを変更しても
フォームを立ち上げなおさないと変更したデータが反映できません。
リアルタムで表示できるようにできないでしょうか?(データを変更したら値が変わる)
また元となるセルデータには計算式が記入してあり
他のセルを参照しているため、元のセルデータの計算式を消さない
ようにしたいです。
ご教示頂ければうれしいです。

A 回答 (3件)

「リアルタイムで表示」とは、「ユーザフォームを表示したまま、セルに値を入力すると、その値がテキストボックスに表示される」ということでしょうか?


であれば、テキストボックスの「ControlSource プロパティ」に連動したいセルのアドレスを指定(例えば、A1)しちゃうのが、一番簡単だと思います。
その上で、モードレスでユーザフォームを表示させます。
こんな感じです。

UserForm1.Show vbModeless
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
こちらの方が簡単そうです。
試してみます。

お礼日時:2018/09/03 08:50

フォームを開いても、テキストボックスの値が更新されないということですよね。


ユーザーフォームのInitialize イベントで下記のように記述すれば、ユーザーフォームが開く前にテキストボックスの値が更新されます。
セルの参照先は仮に「A1」とします。念のため記述箇所のスクリーンショットも添付しますね。

Private Sub UserForm_Initialize()
TextBox1.Text = Range("A1").Text
End Sub
「エクセルのセルデータの反映」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
試してみます。

お礼日時:2018/09/03 08:49

該当のシートのシートモジュールに、以下のマクロを追加してください。


Sheet1のセルA1の内容をUserForm1のTextBox1に自動反映する例です。
シートモジュールは、添付図の赤線で囲んだところをダブルクリックすると表示されます。
-----------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
UserForm1.TextBox1.Text = Range("A1").Text
End Sub
「エクセルのセルデータの反映」の回答画像1
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
試してみます。

お礼日時:2018/09/03 08:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!