Excel VBA質問箱 IV

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

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


6883 / 13644 ツリー ←次へ | 前へ→

【42524】複数行が選ばれていることを知るには? カド 06/9/13(水) 21:03 質問[未読]
【42525】Re:複数行が選ばれていることを知るには? ichinose 06/9/13(水) 21:21 発言[未読]
【42526】Re:複数行が選ばれていることを知るには? [名前なし] 06/9/13(水) 21:24 発言[未読]
【42527】Re:複数行が選ばれていることを知るには? だるま 06/9/13(水) 21:27 回答[未読]
【42530】Re:複数行が選ばれていることを知るには? カド 06/9/13(水) 22:11 お礼[未読]
【42535】Re:複数行が選ばれていることを知るには? だるま 06/9/14(木) 8:20 発言[未読]
【42550】Re:複数行が選ばれていることを知るには? カド 06/9/14(木) 18:54 お礼[未読]

【42524】複数行が選ばれていることを知るには?
質問  カド  - 06/9/13(水) 21:03 -

引用なし
パスワード
   例えば、3行目〜5行目が選択されているときに、
マクロにて”3行目”から”5行目”が選択されていることを
知るにはどうすればいいのですか?

【42525】Re:複数行が選ばれていることを知るには?
発言  ichinose  - 06/9/13(水) 21:21 -

引用なし
パスワード
   ▼カド さん:
こんばんは。
>例えば、3行目〜5行目が選択されているときに、
>マクロにて”3行目”から”5行目”が選択されていることを
>知るにはどうすればいいのですか?
一例ですが、

Sub test()
  Dim carea As Range
  For Each carea In Union(Selection, Selection).Areas
    MsgBox carea.Row & "行 〜 " & _
     carea.Rows.Count + carea.Row - 1 & "行が選択された"
    Next
End Sub

適当な行を選択した後、testを実行してみてください

【42526】Re:複数行が選ばれていることを知るには?
発言  [名前なし]  - 06/9/13(水) 21:24 -

引用なし
パスワード
   こんなかんじ?

Sub Macro1()
  With Selection
    MsgBox .Rows(1).Row & "行目から" & .Rows(.Rows.Count).Row & "行目を選択中"
  End With
End Sub

【42527】Re:複数行が選ばれていることを知るには?
回答  だるま WEB  - 06/9/13(水) 21:27 -

引用なし
パスワード
   ▼カド さん:
>例えば、3行目〜5行目が選択されているときに、
>マクロにて”3行目”から”5行目”が選択されていることを
>知るにはどうすればいいのですか?

たとえばこんな感じとか。^d^

Sub test()
  With Selection
    MsgBox .Row & "行目から" & .Row + .Rows.Count - 1 & "行目"
  End With
End Sub

でも、別に何行目が選択されていようが関係なく処理できることも多いです。
それを知って、その後なにをしたいのでしょうか。その内容によっては知る必要
が無い場合もあります。

【42530】Re:複数行が選ばれていることを知るには?
お礼  カド  - 06/9/13(水) 22:11 -

引用なし
パスワード
   ▼ichinoseさん [名前なし]さん だるま さん
回答ありがとうございます。
おかげでうまく行きました。

>でも、別に何行目が選択されていようが関係なく処理できることも多いです。
>それを知って、その後なにをしたいのでしょうか。その内容によっては知る必要
>が無い場合もあります。

う〜ん、説明が難しいですが、
今が複数行選ばれている状態であったら、一番下のC列をアクティブにし、
そうでなければ現在選ばれている行のC列をアクティブにする。
なんてことに使いたかったのです。

【42535】Re:複数行が選ばれていることを知るには?
発言  だるま WEB  - 06/9/14(木) 8:20 -

引用なし
パスワード
   >今が複数行選ばれている状態であったら、一番下のC列をアクティブにし、
>そうでなければ現在選ばれている行のC列をアクティブにする

一番下の、とはその複数行の中の一番下と言う意味でしょうか。でしたら、

Sub test3()
  Dim R As Range
  Set R = Selection
  Set R = Intersect(R.EntireRow, Range("C:C"))
  Set R = R.Rows(R.Rows.Count)
  R.Select
End Sub

あるいは、C列のデータの入っている範囲の一番下と言う意味でしょうか。それなら、

Sub test()
  Dim R As Range
  Set R = Selection
  If R.Rows.Count >= 2 Then
    Set R = Range("C65536").End(xlUp)
  Else
    Set R = Range("C" & R.Row)
  End If
  R.Select
End Sub

というような感じになります。^d^

【42550】Re:複数行が選ばれていることを知るには?
お礼  カド  - 06/9/14(木) 18:54 -

引用なし
パスワード
   ▼だるま さん 回答ありがとうございます。

>Sub test3()
>  Dim R As Range
>  Set R = Selection
>  Set R = Intersect(R.EntireRow, Range("C:C"))
>  Set R = R.Rows(R.Rows.Count)
>  R.Select
>End Sub

これがやりたかったので、
SelectionやRows.Countといった言葉が知りたくて
最初のような質問をしました。

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