[[20150626112043]] 『選択範囲の一つ下の行を選択するケース』(まてりあるさんた) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『選択範囲の一つ下の行を選択するケース』(まてりあるさんた)

選択した範囲を指定してから Range("G2:S2").Select 
その一つ下の行を追加で選択したい場合どのようなコードになるのでしょうか。

よく最下行を取得する時はあるのですが、
一つ下を連続で6行分追加で選択するVBAを知りたく。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


選択したセルから、Offsetでずらした位置を使えば良いかと。

(???) 2015/06/26(金) 11:35


 何のために選択(Select)するのか、いまいちわかりませんが。
 (VBA処理の99%は選択しなくても実行可能ですので)

 いろんな記述方法がありますけど、一例です。

 Sub Test()
    Range("G2:S2").Select
    MsgBox "選択状況を確認してください"
    Selection.Resize(7).Select
    MsgBox "ご希望通りですね"
 End Sub

(β) 2015/06/26(金) 11:39


ありがとうございました。
言葉足らずでした。

フィルター処理した状態でタイトル Range("G2:S2").Select と
その抽出した分だけを取得する場合についてお聞きしたかったのですが
確かオフセット処理で選択できていたと思うのですが、
すっかり忘れてまして、大変申し訳ないです。

(まてりあるさんた) 2015/06/26(金) 11:59


 >>確かオフセット処理で選択できていたと思うのですが

 それは記憶違いだと思いますが、ともあれ。

 抽出したものを、どうしたいのですか?
 別シートにコピペということですかね。

(β) 2015/06/26(金) 13:25


 もしそういうことであれば。Test2がタイトル含めてコピペー。Test3はタイトルを除いてコピペです。
 いずれも元シートが"Sheet1"、コピー先シートを"Sheet2"としています。
 (確かOffset といわれた記憶は、このTest3タイプのものでしたかね。)

 Sub Test2()
    With Sheets("Sheet1").AutoFilter.Range
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
            MsgBox "抽出されていません"
        Else
            Sheets("Sheet2").UsedRange.ClearContents
            .Copy Sheets("Sheet2").Range("A1")
        End If
    End With
 End Sub

 Sub Test3()
    With Sheets("Sheet1").AutoFilter.Range
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
            MsgBox "抽出されていません"
        Else
            Sheets("Sheet2").UsedRange.ClearContents
            Intersect(.Cells, .Offset(1)).Copy Sheets("Sheet2").Range("A1")
        End If
    End With
 End Sub

(β) 2015/06/26(金) 13:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.