MENU

シフト表を日付でフィルターし出勤者名を転記

VBA初心者でも、すぐエクセルの自動化ができます。

質問

シフト表を日付でフィルターし、出勤者名を転記したい

f:id:The-Alchemist:20220129175704p:plain手順

①エクセル表に、入力規則を設定し、日にちを選べるようにする。
②エクセル表に、MATCH関数で、フィルターで検索するを表示。
③アプリの「フィルター」で、フィルター結果を出勤者の欄にコピーするように設定。
④アプリの「データのクリア」で出勤者名以外をクリアするように設定。
 

アプリの画面

f:id:The-Alchemist:20220129180255p:plain



左が設定画面です。

 

 

 

 

 

 

 

 

 

・フィルターで検索する列を、エクセルシートのセルの値で指定できます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

コード

Sub デモ_1() 'フィルター条件1つ
'◆前データをクリアする
Sheets("sheet1").Select
Range("a20").Select
Range(Selection, Selection).CurrentRegion.Clear
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
セル範囲 = "a4:p11"
Range(セル範囲).Select
Call デモ_1_メイン処理(セル範囲)
End Sub

 

Sub デモ_1_メイン処理(セル範囲 As String)
Dim 対象列 As Long
対象列 = Range("b15").Value
Range(セル範囲).AutoFilter Field:=対象列, Criteria1:="=〇"
Selection.CurrentRegion.Copy
Sheets("sheet1").Select
Range("a20").Select
Selection.PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
Sheets("sheet1").AutoFilterMode = False
End Sub

 

アプリはこちらから↓↓↓↓