iPhone5/iPad4/iPad mini | 無線プリンタ | ネットワーク | データセンター用語 | Netscreen/Juniper |
[ ミニミニ管理者の独り言 > エクセル(EXCEL)-VBA・関数 > エクセルVBA−オートフィルタでのコピー ]
スポンサードリンク
エクセルVBA−オートフィルタでのコピー
エクセルの機能で「オートフィルター」というものがあります。
この機能をエクセルVBAで実現するのが、AutoFilterプロパティです。このAutoFilterプロパティは便利なので覚えておくと結構使えると思います。
私が使った例では、マスタとなるワークシートの表をAutoFilterを使用してある項目(列)で絞り込みして、絞り込みした範囲を別ワークシートにコピー(値のみ貼付)します。このコピーした表をDSUMやVLOOKUPなどで条件に合致した値を取得する。といった使い方です。この方法だと、関数だけでは処理できない、二段階以上の絞込みができます。
◆参考◆
ここでは商品マスタにある表を商品コードで絞り込みして別ワークシートに貼付するサンプルです。下記のサンプルでポイントとなるのは
・AutoFilterを実行する
・絞込みされた表示部分のみをコピーする
・値のみ貼付する
・AutoFilterを解除する
ところです。
Sub Item_Click()
Dim cFilter As String
'スクリーンの表示の更新を抑止する
Application.ScreenUpdating = False
'非表示にしていた商品マスタWSを表示する
Worksheets("商品マスタWS").Visible = True
Sheets("見積明細").Select
'見積明細ワークシートのB2セル(B2=商品群)の値を変数に格納する
cFilter = Range("見積明細!B2").Value
'商品マスタワークシートの表を選択する
Sheets("商品マスタ").Select
Range("A1").Select
'AutoFilterを実行する。Fieldは表中の絞込みする列番号でCriteria1は絞込値
'ここでは商品群の値で絞込みする
Selection.AutoFilter Field:=5, Criteria1:=cFilter
'商品マスタワークシートのAutoFilterで絞込み表示されている表部分のみコピー
Sheets("商品マスタ").Select
Selection.SpecialCells(xlVisible).Copy
'商品マスタWSワークシートに値のみ貼付(Paste:=xlValues)する
Sheets("商品マスタWS").Select
Range("A1").PasteSpecial Paste:=xlValues
Sheets("商品マスタ").Select
'AutoFilterが有効の場合は解除する
If Selection.AutoFilter = True Then EnableAutoFilter = False
Sheets("見積明細").Select
Worksheets("商品マスタWS").Visible = xlVeryHidden
Application.ScreenUpdating = True
End Sub
◆検証環境
OS:WindowsXP Pro
Excel:Excel2000
《エクセルの便利な使い方集(関数・機能・マクロ・VBA)》
1)関数
・エクセル関数−VLOOKUPのエラー対処
・エクセル関数−TEXT
・エクセル関数−SUBTOTAL
この機能をエクセルVBAで実現するのが、AutoFilterプロパティです。このAutoFilterプロパティは便利なので覚えておくと結構使えると思います。
私が使った例では、マスタとなるワークシートの表をAutoFilterを使用してある項目(列)で絞り込みして、絞り込みした範囲を別ワークシートにコピー(値のみ貼付)します。このコピーした表をDSUMやVLOOKUPなどで条件に合致した値を取得する。といった使い方です。この方法だと、関数だけでは処理できない、二段階以上の絞込みができます。
◆参考◆
ここでは商品マスタにある表を商品コードで絞り込みして別ワークシートに貼付するサンプルです。下記のサンプルでポイントとなるのは
・AutoFilterを実行する
・絞込みされた表示部分のみをコピーする
・値のみ貼付する
・AutoFilterを解除する
ところです。
Sub Item_Click()
Dim cFilter As String
'スクリーンの表示の更新を抑止する
Application.ScreenUpdating = False
'非表示にしていた商品マスタWSを表示する
Worksheets("商品マスタWS").Visible = True
Sheets("見積明細").Select
'見積明細ワークシートのB2セル(B2=商品群)の値を変数に格納する
cFilter = Range("見積明細!B2").Value
'商品マスタワークシートの表を選択する
Sheets("商品マスタ").Select
Range("A1").Select
'AutoFilterを実行する。Fieldは表中の絞込みする列番号でCriteria1は絞込値
'ここでは商品群の値で絞込みする
Selection.AutoFilter Field:=5, Criteria1:=cFilter
'商品マスタワークシートのAutoFilterで絞込み表示されている表部分のみコピー
Sheets("商品マスタ").Select
Selection.SpecialCells(xlVisible).Copy
'商品マスタWSワークシートに値のみ貼付(Paste:=xlValues)する
Sheets("商品マスタWS").Select
Range("A1").PasteSpecial Paste:=xlValues
Sheets("商品マスタ").Select
'AutoFilterが有効の場合は解除する
If Selection.AutoFilter = True Then EnableAutoFilter = False
Sheets("見積明細").Select
Worksheets("商品マスタWS").Visible = xlVeryHidden
Application.ScreenUpdating = True
End Sub
◆検証環境
OS:WindowsXP Pro
Excel:Excel2000
《エクセルの便利な使い方集(関数・機能・マクロ・VBA)》
1)関数
・エクセル関数−VLOOKUPのエラー対処
・エクセル関数−TEXT
・エクセル関数−SUBTOTAL
2)使い方・機能
・エクセル機能-セルにコンボボックスを割り当てる
・エクセル機能-条件に合わせて書式を変更する
・エクセル機能-xlsファイルにパスワードを設定する方法
・エクセルでシートをコピーできない。−このコマンドは、共有ファイルで実行することができません。排他モードで開いてください−
3)マクロ
・エクセルマクロ−マクロにショートカットキーを割当する
4)VBA
・エクセルVBA−スクリーンの表示の更新を抑止する
・エクセルVBA−ワークシートを非表示にする
・エクセルVBA−マウスポインタの変更
・エクセルVBA−エンターキーを押下した時のアクティブセルの移動
・エクセルVBA−セルの数式を非表示にする
・エクセルVBA−ワークブックを開いた時に処理をしたい
・エクセルVBA−オートフィルタでのコピー
・エクセルVBA−特定ファイルで常にマクロを有効にする
5)実践編
・エクセルとワードで作る簡易株主総会支援システム−想定問答
最新記事へ トップページ
スポンサードリンク
■Blog Ranking■
1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
2. (ブログランキング ドット ネット)
3.にほんブログ村
4.BS blog Ranking
ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
※サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
コメント
トラックバック
トラックバックURL:
※ クリックで選択できます。
トラックバック一覧: