●最終的にやりたいこと
→下記のように、A列”使用者"でautofilterをかけ,フィルター後の状態をで 印刷や、"使用者"ごとにデータをメール送信したい(他の"使用者"のデータを見えないようにすることが必要になるので、PDF保存や他シートに値で張り付けるなどが必要になると思われる)。
例えば、最初に
➀"勝村"でフィルターをかけ、”勝村"だけのデータを印刷し、フィルター解除。
➁"加藤"でフィルターをかけ、"加藤"だけのデータを印刷し、フィルター解除。
➂"木村"で~
を繰り返したい。
●今回わからなくて困ってること
autofilterメソッドの引数criteria1の値(勝村の部分)を動的にして、次のフィルター候補に自動で変動するようにしたいです。(フィルター後の印刷やメール送信の処理はまだ書き方を知らず、これから調べるため割愛しております)
当然、"使用者"のデータは都度変更します。
となると、forループのループ回数の設定にも困ります。
もしくは、そもそもautofilterじゃない方法でいい方法があるのかどうか。
どなたかご教授いただけないでしょうか?
よろしくお願いいたします。
Sub
1Dim i 2for i = ? to ? 3Cells(1, 1).autoFilter 1, "勝村" 4 5'フィルター後の印刷や、メール送信の処理を書く 6Cells(1, 1).autoFilter 'フィルター解除 7Next i 8End Sub 9 10```Sub filter() 11Dim i As Long 12Dim ws, ws2 As Worksheet 13Dim path As String 14path = "E:\work\" 15Set ws = Worksheets("sheet23") 16Set ws2 = Worksheets.Add(after:=ws) 17Dim c As Integer 18c = 1 19Dim result As Range 20With ws.UsedRange 21For i = 2 To .Rows.count 22Set result = ws2.Columns(1).Find(what:=ws.Cells(i, 1)) 23If result Is Nothing Then 24ws2.Cells(c, 1) = ws.Cells(i, 1) 25.autoFilter 1, Cells(i, 1) 26ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=path & ws.Cells(i, 1) 27c = c + 1 28End If 29Next 30End With 31ws.AutoFilterMode = False 32End Sub 33コード
![イメージ説明](2012775f776b335d890db18e4d793949.png)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/30 06:44
2021/05/30 06:53
2021/05/30 08:25