[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの値により』(おぎも)
お世話になっております。
エクセルマクロ VBAに関する質問をさせていただきます。
よろしくお願いします。
A列に-40から200までの数字が入っています。
A列の値によって以下の処理を行いたいのですがお力をお貸しいただけないでしょうか。
条件1.-20未満または100以上の場合は行ごと削除する
条件2.1の位が0もしくは5以外は行ごと削除
条件3.空欄の場合は行ごと削除
条件4.-20から100までの場合、B列の同じ行に●をつける
【例】
A列 1 -21 → 条件1のため行とごと削除 2 11 → 条件2のため行ごと削除 3 → 条件3のため行ごと削除 4 20 → 条件4のためB列に●をつける 5 101 → 条件1のため行とごと削除
関数であれば自力でも可能なのですが、同様のファイルが1000施設分ありましてひとつひとつ処理するのが困難です。
フォルダ内のファイルを開いて閉じるをループさせるマクロはわかりましたので、上記処理部分を教えていただけましたら幸いです。
何卒よろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
 Sub sample()
     Dim ws As Worksheet, cel As Range, isDelete As Boolean, deleteRange As Range
         For Each ws In ActiveWorkbook.Worksheets
             For Each cel In ws.Range("A1", ws.Cells(Rows.Count, "A").End(xlUp))
                 isDelete = False
                 Select Case cel.Value
                 Case ""
                     isDelete = True
                 Case -20 To 100
                     If cel.Value Mod 5 <> 0 Then isDelete = True
                 End Select
                 Select Case isDelete
                 Case True
                     cel.Offset(0, 1).Value = "●"
                 Case False
                     If deleteRange Is Nothing Then
                         Set deleteRange = cel
                     Else
                         Set deleteRange = Union(deleteRange, cel)
                     End If
                 End Select
             Next cel
             If Not deleteRange Is Nothing Then
                 deleteRange.EntireRow.Delete
             End If
         Next ws
 End Sub
(tkit) 2020/05/26(火) 13:52
お礼が遅くなり申し訳ございません。
作成いただいものを参考に無事やりたいことが実現できました。
どうもありがとうございました!
(おぎも) 2020/05/27(水) 12:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
 Modified by kazu.