• ベストアンサー

VBAについて

エクセルシートで任意に選択されたセルの個数を VBAのUserFormのTextBoxに表示されるのは どのようにしたらよいのでしょうか? 例)エクセルシートで、B2~D2をマウスで選択すると、   UserFormのTextBoxに3と表示されるようにする。 任意に選択されたセルの個数を求めるのは 以下のようにしました↓↓↓ ********************************* * Sub GetAreaValue() *   Dim CELLNUM As Integer *   CELLNUM = Selection.Count * End Sub *********************************

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

  • ベストアンサー
回答No.1

分からない点はどの部分でしょうか? >エクセルシートで、B2~D2をマウスで選択すると、 が分からないなら、ワークシートのSelectionChangeイベントにUserFormのテキストボックスに表示するコードを書いて下さい。 求める関数 >Sub GetAreaValue() を作ったけど表示の仕方が分からないのであれば、その関数はSubで宣言されているのでCELLNUMという変数の内容を外に出せません。 Function GetAreaValue() As Integer と宣言し、関数の最後に GetAreaValue = CELLNUM と書けば選択されているセル数を返す関数になるので UserForm1.TextBox1.Text = GetAreaValue で表示されます。 または、 Sub GetAreaValue(iTextBox As TextBox) と宣言し、関数の最後に iTextBox.Text = CELLNUM と書き、関数内でTextBoxへの表示を行う手もあります。 使い方は Call GetAreaValue(UserForm1.TextBox1) 以下はご参考。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not UserForm1.Visible Then UserForm1.Show 0 UserForm1.TextBox1.Text = Selection.Count End Sub

gazo
質問者

お礼

回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >UserFormのTextBoxに3と表示されるようにする。 単純に、UserForm の動きとは別に、このようにすればよいのではありませんか? Private Sub Worksheet_SelectionChange(ByVal Target As Range)   UserForm1.TextBox3.Value = Selection.Count End Sub もちろん、UserForm1.Show 0 で、モードレスモードで立ち上がっていることは言うまでもありませんが。

gazo
質問者

お礼

回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.2

UserForm!TextBox.text = CELLNUM こんな感じだったと思います(^^;

gazo
質問者

お礼

回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。