資材業務で実際に活用 本日納期の品物だけ抽出マクロ

マクロ・VBA

今回は実際に私が業務で使っているマクロをご紹介します。

 業務として私は当日納品される商品一覧をマスタデータから抽出する作業を行っています。手作業でフィルターを操作してもよいのですが、今回紹介するマクロを使えば30分の作業が1クリックで行えるので非常に便利です。

目次

  • コピペ用マクロ全文
  • 概要説明

まず、やりたいことを日本語で確認します。マスタデータから本日納期の品だけを抽出し、別シートに貼り付けます。オートフィルターを使って手動で抽出する作業を自動化します。

マスタデータから

抽出先シートに張り付ける

コピペ用マクロ全文

以下が、マクロ全文になります。

Sub 本日納期品抽出()

‘マスタデータのフィルターを解除する。
If Workbooks(“発注一覧.xlsx”).Sheets(“Sheet1”).FilterMode = True Then
Workbooks(“発注一覧.xlsx”).Sheets(“Sheet1”).ShowAllData
End If
‘マスタデータを現在発注中でフィルターする
Workbooks(“発注一覧.xlsx”).Activate
With Workbooks(“発注一覧.xlsx”).Sheets(“Sheet1”)
Range(“A1″).AutoFilter field:=1, Criteria1:=”発注中”

‘さらに本日の日付でフィルターする
Range(“A1”).AutoFilter field:=5, Criteria1:= _
Workbooks(“サイト.xlsm”).Sheets(“Sheet1”).Range(“K2”).Text

‘抽出するものだけ残してコピー
Range(“A1,D1:E1,H1”).EntireColumn.Hidden = True
Range(“A1”).CurrentRegion.Offset(1, 0).Copy
End With
‘貼り付け後、元に戻す。
Workbooks(“サイト.xlsm”).Sheets(“Sheet1”).Range(“A2”).PasteSpecial
Workbooks(“発注一覧.xlsx”).Sheets(“Sheet1”).Range(“A1,D1:E1,H1”).EntireColumn.Hidden = False
Workbooks(“発注一覧.xlsx”).Sheets(“Sheet1”).ShowAllData
Workbooks(“サイト.xlsm”).Activate

次に詳細の説明に移ります。

マスタデータのフィルターを解除するとはフィルターがかかっていた場合、それを解除するという意味です。このifを入れずにShowAllDataだけにすると、フィルターがかかっていないときエラーになってしまいます。

次にフィルターをかけていきます。まず現在、発注中でフィルター。

さらに指定納期欄が本日の日付で抽出。抽出先シートにTODAY()関数を書いてそれをもとにしています。最後のtextを付けないとうまくいきません。これについては別記事で。

ここが今回のミソになるのですが、フィルター結果をコピーする際、その範囲をどのように指定するかということです。

これについては以下のサイトを参考にしています。

Office TANAKA – Excel VBA Tips[オートフィルタ[結果をコピーする]]

 そして貼り付け後、もとに戻して終わりになります。

いかがでしたでしょうか。この通りやれば本日納期のものだけ瞬時に取り出せます。是非参考にしてみてください。

コメント

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