【VBA】Excelフィルタリング後の値を取得する方法

VBA

Excel VBA 一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【VBA】Excel シート内の幅と高さを別のシートにコピーする方法
VBAでシートをコピーする際に、 セルの高さや幅もコピーすることができます。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

Excelでフィルタリング後の値を別シートに
出力することができます。

フィルターの設定方法

例)

.Range("A1").AutoFilter Field:=3, Criteria1:="りんご"

Field:=  フィルタリングするカラム位置を指定します。

Criteria1:= フィルタリングする文字列を指定します。

 

フィルタリング後の値の取得方法

以下のように行うことで、フィルタリング後の文字列を取得できます。

With Range("A1").CurrentRegion.Offset(1, 0)
For Each R In .Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Rows
' Debug.Print R.Address
 Debug.Print R.Cells(1, 1)
 Debug.Print R.Cells(1, 2)
Next R
End With

 

フィルタリング後の値を別シートに表示する例

「別シート」の5行目、B,C,D列に出力する場合

Const OutPutSheetName As String = "別シート"

Dim outrow As Integer

outrow = 5

With Range("A1").CurrentRegion.Offset(1, 0)
 For Each R In .Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Rows
 ' Debug.Print R.Address
  Worksheets(OutPutSheetName).Cells(outrow, 2).Value = R.Cells(1, 5)
  Worksheets(OutPutSheetName).Cells(outrow, 3).Value = R.Cells(1, 6)
  Worksheets(OutPutSheetName).Cells(outrow, 4).Value = R.Cells(1, 7)
  Debug.Print R.Cells(1, 5)
  Debug.Print R.Cells(1, 6)
  Debug.Print R.Cells(1, 7)
  outrow = outrow + 1
 Next R
End With

 

 

最後までご覧いただきありがとうございます。

つぎはこちら

【VBA】Excel カラム(列番号)をアルファベットから番号(数字)に変換する方法(1行でOK)
カラムをアルファベットから数字に変換する方法をお伝えします。

Excel VBA 一覧

コメント

タイトルとURLをコピーしました