こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAについて

エクセルシートで任意に選択されたセルの個数を
VBAのUserFormのTextBoxに表示されるのは
どのようにしたらよいのでしょうか?

例)エクセルシートで、B2~D2をマウスで選択すると、
  UserFormのTextBoxに3と表示されるようにする。

任意に選択されたセルの個数を求めるのは
以下のようにしました↓↓↓
*********************************
* Sub GetAreaValue()
*   Dim CELLNUM As Integer
*   CELLNUM = Selection.Count
* End Sub
*********************************

投稿日時 - 2005-10-30 21:09:30

QNo.1746325

困ってます

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

分からない点はどの部分でしょうか?
>エクセルシートで、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

投稿日時 - 2005-10-30 22:57:36

お礼

回答どうもありがとうございます。

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

投稿日時 - 2005-10-31 22:08:14

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

こんばんは。

>UserFormのTextBoxに3と表示されるようにする。

単純に、UserForm の動きとは別に、このようにすればよいのではありませんか?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  UserForm1.TextBox3.Value = Selection.Count
End Sub

もちろん、UserForm1.Show 0 で、モードレスモードで立ち上がっていることは言うまでもありませんが。

投稿日時 - 2005-10-30 23:41:22

お礼

回答どうもありがとうございます。

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

投稿日時 - 2005-10-31 22:07:31

ANo.2

UserForm!TextBox.text = CELLNUM

こんな感じだったと思います(^^;

投稿日時 - 2005-10-30 22:59:42

お礼

回答どうもありがとうございます。

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

投稿日時 - 2005-10-31 22:07:54

あなたにオススメの質問