Excel VBA質問箱 IV

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

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


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

【62057】セルの選択範囲の取得 亜矢 09/6/19(金) 5:21 質問[未読]
【62058】Re:セルの選択範囲の取得 かみちゃん 09/6/19(金) 5:32 発言[未読]
【62059】Re:セルの選択範囲の取得 亜矢 09/6/19(金) 5:51 質問[未読]
【62060】Re:セルの選択範囲の取得 かみちゃん 09/6/19(金) 6:10 発言[未読]
【62061】Re:セルの選択範囲の取得 亜矢 09/6/19(金) 6:29 お礼[未読]

【62057】セルの選択範囲の取得
質問  亜矢  - 09/6/19(金) 5:21 -

引用なし
パスワード
   よろしくお願いします。
セルの選択範囲(1列限定連続)を取得するプログラムは下記で処理していますが、連続していないセル(飛び飛び)を選択した場合の選択セルの行Noを
取得する方法について教えて頂きたいと思います。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, cancel As Boolean)
Dim myrng As Range
Dim myRng1 As Range
Dim myRng2 As Range

If TypeName(Selection) = "Range" Then
  Set myrng = Selection
  RRow = myrng.Column
  CCloumn1 = myrng.Row

  Set myRng1 = myrng.Cells(myrng.Cells.Count)
  CCloumn2 = myRng1.Row
end if
end sub

【62058】Re:セルの選択範囲の取得
発言  かみちゃん  - 09/6/19(金) 5:32 -

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

> 連続していないセル(飛び飛び)を選択した場合の選択セルの行Noを取得する方法

どのような飛び飛びセルを選択して、どのような行Noを取得したいのですか?
たとえば、
B3、D10、B16、F16
を選択した場合、どういう結果を得たいのですか?

あと、変数の宣言は、きちんとしたほうがいいと思います。

【62059】Re:セルの選択範囲の取得
質問  亜矢  - 09/6/19(金) 5:51 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>> 連続していないセル(飛び飛び)を選択した場合の選択セルの行Noを取得する方法
>
>どのような飛び飛びセルを選択して、どのような行Noを取得したいのですか?
>たとえば、
>B3、D10、B16、F16
>を選択した場合、どういう結果を得たいのですか?
>
>あと、変数の宣言は、きちんとしたほうがいいと思います。
さっそくのご指導ありがとうございます
たとえば
B3:B8 と B20:B35のセルを選択した場合は
行Noとしては3と8 次ぎに20と35を取得したいとおもいます。
連続で飛んでいない場合は上記に記入したプログラムで処理しています。
よろしくお願いします。

【62060】Re:セルの選択範囲の取得
発言  かみちゃん  - 09/6/19(金) 6:10 -

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

>たとえば
>B3:B8 と B20:B35のセルを選択した場合は
>行Noとしては3と8 次ぎに20と35を取得したい

どのように出力したいのかよくわかりませんが、以下のような感じのことがしたい
のでしょうか?

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, cancel As Boolean)
 Dim myrng As Range
 Dim a As Range
 Dim i As Long
 
 If TypeName(Selection) = "Range" Then
  Set myrng = Selection
  ReDim v(1 To myrng.Areas.Count * 2)
  For i = 1 To myrng.Areas.Count
   With myrng.Areas(i)
    v(i * 2 - 1) = .Rows(1).Row
    v(i * 2) = .Rows(.Rows.Count).Row
   End With
  Next
  MsgBox myrng.Address & vbCrLf & Join(v, ",")
 End If
End Sub

【62061】Re:セルの選択範囲の取得
お礼  亜矢  - 09/6/19(金) 6:29 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>たとえば
>>B3:B8 と B20:B35のセルを選択した場合は
>>行Noとしては3と8 次ぎに20と35を取得したい
>
>どのように出力したいのかよくわかりませんが、以下のような感じのことがしたい
>のでしょうか?
>
>Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, cancel As Boolean)
> Dim myrng As Range
> Dim a As Range
> Dim i As Long
> 
> If TypeName(Selection) = "Range" Then
>  Set myrng = Selection
>  ReDim v(1 To myrng.Areas.Count * 2)
>  For i = 1 To myrng.Areas.Count
>   With myrng.Areas(i)
>    v(i * 2 - 1) = .Rows(1).Row
>    v(i * 2) = .Rows(.Rows.Count).Row
>   End With
>  Next
>  MsgBox myrng.Address & vbCrLf & Join(v, ",")
> End If
>End Sub
ありがとうございました。解決しました。
今後もよろしくお願いします。

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