- ベストアンサー
VBAについて
エクセルシートで任意に選択されたセルの個数を VBAのUserFormのTextBoxに表示されるのは どのようにしたらよいのでしょうか? 例)エクセルシートで、B2~D2をマウスで選択すると、 UserFormのTextBoxに3と表示されるようにする。 任意に選択されたセルの個数を求めるのは 以下のようにしました↓↓↓ ********************************* * Sub GetAreaValue() * Dim CELLNUM As Integer * CELLNUM = Selection.Count * End Sub *********************************
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
分からない点はどの部分でしょうか? >エクセルシートで、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
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >UserFormのTextBoxに3と表示されるようにする。 単純に、UserForm の動きとは別に、このようにすればよいのではありませんか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) UserForm1.TextBox3.Value = Selection.Count End Sub もちろん、UserForm1.Show 0 で、モードレスモードで立ち上がっていることは言うまでもありませんが。
お礼
回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。
- arare2005
- ベストアンサー率31% (63/199)
UserForm!TextBox.text = CELLNUM こんな感じだったと思います(^^;
お礼
回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。
お礼
回答どうもありがとうございます。 おかげで、無事解決することができました。 どうもありがとうございました。