Excel VBA質問箱 IV

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

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


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

【53036】セルの選択について 多摩川 07/12/12(水) 18:00 質問[未読]
【53039】Re:セルの選択について ichinose 07/12/12(水) 18:22 発言[未読]
【53040】Re:セルの選択について ハト 07/12/12(水) 18:28 回答[未読]
【53041】Re:セルの選択について りん 07/12/12(水) 18:29 回答[未読]
【53044】Re:セルの選択について 多摩川 07/12/12(水) 18:43 お礼[未読]
【53045】Re:セルの選択について 多摩川 07/12/12(水) 18:45 お礼[未読]

【53036】セルの選択について
質問  多摩川  - 07/12/12(水) 18:00 -

引用なし
パスワード
   こんばんは。

最終的にアドレスで記入すると、Range("C2:F2,C4:F45").Select としたいと思っています。

C2:F2 のアドレスは Range("C2", Range("C2").Offset(0, 3)).Address で取得でき、
C4:F45 のアドレスは Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address で取得できるシート構成となっています。

 x = Range("C2", Range("C2").Offset(0, 3)).Address
 y = Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address
 Range(x, y).select

とした場合、Range("C2:F2","C4:F45").Select と同じ範囲を選択してしまします。
どのように書いたらよいのでしょうか?

よろしくお願いします。

【53039】Re:セルの選択について
発言  ichinose  - 07/12/12(水) 18:22 -

引用なし
パスワード
   ▼多摩川 さん:
こんばんは。

これは、Unionメソッドを使ってください。

>
>最終的にアドレスで記入すると、Range("C2:F2,C4:F45").Select としたいと思っています。
>
>C2:F2 のアドレスは Range("C2", Range("C2").Offset(0, 3)).Address で取得でき、
>C4:F45 のアドレスは Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address で取得できるシート構成となっています。
>
> x = Range("C2", Range("C2").Offset(0, 3)).Address
> y = Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address
> Range(x, y).select
>
>とした場合、Range("C2:F2","C4:F45").Select と同じ範囲を選択してしまします。
>どのように書いたらよいのでしょうか?
Sub test()
 Dim x As Range, y As Range
 Set x = Range("C2", Range("C2").Offset(0, 3))
 Set y = Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6)
 application.Union(x, y).Select

End Sub


>
>よろしくお願いします。

【53040】Re:セルの選択について
回答  ハト  - 07/12/12(水) 18:28 -

引用なし
パスワード
   ▼多摩川 さん:
>こんばんは。
>
>最終的にアドレスで記入すると、Range("C2:F2,C4:F45").Select としたいと思っています。
>
>C2:F2 のアドレスは Range("C2", Range("C2").Offset(0, 3)).Address で取得でき、
>C4:F45 のアドレスは Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address で取得できるシート構成となっています。
>
> x = Range("C2", Range("C2").Offset(0, 3)).Address
> y = Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address
> Range(x, y).select
>
>とした場合、Range("C2:F2","C4:F45").Select と同じ範囲を選択してしまします。
>どのように書いたらよいのでしょうか?
>
>よろしくお願いします。

Range("C2:F2,C4:F45").Selectとしたいのなら
Range(x, y).select
 →Range(x & "," & y).select
にしてみるとか?

【53041】Re:セルの選択について
回答  りん E-MAIL  - 07/12/12(水) 18:29 -

引用なし
パスワード
   多摩川 さん、こんばんわ。

>最終的にアドレスで記入すると、Range("C2:F2,C4:F45").Select としたいと思っています。

>C2:F2 のアドレスは Range("C2", Range("C2").Offset(0, 3)).Address で取得でき、
>C4:F45 のアドレスは Range("C4").Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6).Address で取得できるシート構成となっています。

C列からResize(略, 6)だと、C4:H45になりませんか?

xとyの出し方についてはおいておくとして、ともにRangeオブジェクトではなくてアドレスを示す文字列なので、

案1
 Range(x & "," & y).select

案2
 Application.Union(Range(x), Range(y)).Select

これでいかがでしょうか。

【53044】Re:セルの選択について
お礼  多摩川  - 07/12/12(水) 18:43 -

引用なし
パスワード
   ▼りん さん:
こんばんは。

>C列からResize(略, 6)だと、C4:H45になりませんか?
ご指摘の通り、C4:H45になります。H と F の誤記入です。
申し訳ありませんでした。

【53045】Re:セルの選択について
お礼  多摩川  - 07/12/12(水) 18:45 -

引用なし
パスワード
   色々な方法があるものなのですね。
Unionメソッドは知りませんでした。
Range(x & "," & y).select は思いも付かない発想でした。

大変助かりました。
皆さん、ありがとうございました。

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