Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5690 / 13645 ツリー ←次へ | 前へ→

【49424】アクティブセルの個数をカウント 刀火 07/6/4(月) 22:35 質問[未読]
【49425】Re:アクティブセルの個数をカウント かみちゃん 07/6/4(月) 22:40 回答[未読]
【49428】複数選択 刀火 07/6/4(月) 23:25 質問[未読]
【49430】Re:複数選択 かみちゃん 07/6/4(月) 23:55 発言[未読]
【49431】Re:複数選択 刀火 07/6/5(火) 0:30 お礼[未読]
【49439】Re:アクティブセルの個数をカウント 刀火 07/6/5(火) 3:08 質問[未読]
【49440】Re:アクティブセルの個数をカウント Kein 07/6/5(火) 3:42 発言[未読]
【49441】Re:選択したセル範囲のセルの個数をカウン... ichinose 07/6/5(火) 7:16 発言[未読]
【49455】Re:選択したセル範囲のセルの個数をカウン... 刀火 07/6/5(火) 17:10 お礼[未読]

【49424】アクティブセルの個数をカウント
質問  刀火  - 07/6/4(月) 22:35 -

引用なし
パスワード
   題名で全ての疑問を表していますが……、
たとえば、A1、C3、D8 三つのセルがアクティブになっている時、そのアクティブセルの個数をカウントするにはどうすれば良いでしょうか? よろしくお願いします。

【49425】Re:アクティブセルの個数をカウント
回答  かみちゃん  - 07/6/4(月) 22:40 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>たとえば、A1、C3、D8 三つのセルがアクティブになっている時、そのアクティブセルの個数をカウントする

以下のような感じでいかがでしょうか?

Sub Sample()
 If TypeName(Selection) = "Range" Then
  MsgBox "選択されているセルは " & Selection.Count & " 個です"
 Else
  MsgBox "セル範囲をアクティブにしてください。"
 End If
End Sub

【49428】複数選択
質問  刀火  - 07/6/4(月) 23:25 -

引用なし
パスワード
   かみちゃん さん ありがとうございました。

早速試して……みようとしたところ、そもそも複数のセルを選択するコードがわからないことに気づきました;

A1、B1のような型ではなく、$A$1型で、三つ以上の数のセルを選択する方法を教えていただけないでしょうか?

【49430】Re:複数選択
発言  かみちゃん  - 07/6/4(月) 23:55 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>A1、B1のような型ではなく、$A$1型で、三つ以上の数のセルを選択する方法

意味がわかりません。
手作業ではできますか?
できるならば、「マクロの記録」で記録すればわかると思います。

【49431】Re:複数選択
お礼  刀火  - 07/6/5(火) 0:30 -

引用なし
パスワード
   なるほど、マクロの記録ですね。何だか盲点に入ってました……ありがとうございました。

【49439】Re:アクティブセルの個数をカウント
質問  刀火  - 07/6/5(火) 3:08 -

引用なし
パスワード
   かみちゃんさん 、先日は回答ありがとうございました。

アクティブセルの数を数えるプログラムということで、

 >Sub Sample()
  >If TypeName(Selection) = "Range" Then
   >MsgBox "選択されているセルは " & Selection.Count & " 個です"
  >Else
   >MsgBox "セル範囲をアクティブにしてください。"
  >End If 
 >End Sub

 というコードを提案して頂きましたが、このコードですと、複数回同じセルを選択した場合、のべ個数がカウントされてしまうようです(例えばA1を1回、A2を2回選択してこのコードを実行すると、3個として数えられてしまう)。
 何度選択されても、「実際にアクティブになっているセルの個数」をカウントするにはどうすればよいのでしょうか。
 
 かみちゃんさん、または他のどなたか、回答よろしくお願いいたします。

【49440】Re:アクティブセルの個数をカウント
発言  Kein  - 07/6/5(火) 3:42 -

引用なし
パスワード
   >A1を1回、A2を2回選択
とは、実際にどういう操作をしてるのでしょーか ?
複数のセルを選択するやり方はいくつかありますが、例えば B2:C5 の範囲なら
B2 を選択してから Shiftキー を押しながら C5 を選択するとか、もっと簡単に
B2 からマウスドラッグで選択範囲をひろげるとかです。
あと飛び飛びのセル範囲なら、Ctrlキー を押しながら選択していきます。
そのようにした後、件のマクロを実行すれば正しくセル数が表示されるはずです。
見てのとうり、何も難しいところが無いコードですから。
ちなみにアクティブセルというと、選択した範囲の中の一つだけを指します。
通常なら "白抜き" になっているセルのことです。

* 遅いのでもう寝ます。あしからず。

【49441】Re:選択したセル範囲のセルの個数をカウ...
発言  ichinose  - 07/6/5(火) 7:16 -

引用なし
パスワード
   ▼刀火 さん:
おはようございます。

>アクティブセルの数を数えるプログラムということで、
>
> >Sub Sample()
    Dim rng As Range

>  >If TypeName(Selection) = "Range" Then
    Set rng = Selection
    MsgBox "選択されているセルは " & _
      Application.Union(rng, rng).Count & " 個です"

>   >MsgBox "選択されているセルは " & Selection.Count & " 個です"
>  >Else
>   >MsgBox "セル範囲をアクティブにしてください。"
>  >End If 
> >End Sub
>
> というコードを提案して頂きましたが、このコードですと、複数回同じセルを選択した場合、のべ個数がカウントされてしまうようです。

Unionメソッドが有効です。試してみてください。

【49455】Re:選択したセル範囲のセルの個数をカウ...
お礼  刀火  - 07/6/5(火) 17:10 -

引用なし
パスワード
   keinさん、ichinoseさん、回答ありがとうございました。
Unionメソッドを使うのですね。うまくいきました、ありがとうございます。

5690 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free