制作物全国対応・兵庫県 姫路市にある発信力をテーマとしたホームページ・ブログ制作
ニコ株式会社
Blog


Excel(エクセル)複数シート、複数ブックの一括置き換え


エクセルネタです。

一括置き換えのマクロ。

Sub フォルダ内全ブック全シート計算式置換え()
'--- 設定事項 -----------------
Const Mypath = "C:\Desktop\" ' <--- フォルダ指定
Const OldStr = "○○○" ' <--- 置換え前
Const NewStr = "○○○" ' <--- 置換え後
'-----------------------------
Dim WB As Workbook
Dim Rng As Range
Dim FName As String
Dim Bcnt As Integer
Dim Dcnt As Integer
Dim Scnt As Integer
Dim N As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
FName = Dir(Mypath & "*.xls", vbNormal)
Do While FName <> ""
    Set WB = Workbooks.Open(Mypath & FName)
    Bcnt = Bcnt + 1
    Scnt = 0
    Windows(WB.Name).Visible = False
    For N = 1 To WB.Worksheets.Count
        Set Rng = WB.Worksheets(N).Cells.Find(OldStr)
        If Not Rng Is Nothing Then
            Scnt = Scnt + 1
            Do
                Rng.Formula = Replace(Rng.Formula, OldStr, NewStr)
                Dcnt = Dcnt + 1
                Set Rng = WB.Worksheets(N).Cells.FindNext(Rng)
            Loop Until Rng Is Nothing
        End If
    Next N
    If Scnt = 0 Then
        WB.Close SaveChanges:=False
    Else
        Windows(WB.Name).Visible = True
        WB.Close SaveChanges:=True
    End If
    FName = Dir
    If FName = ThisWorkbook.FullName Then FName = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
If Bcnt = 0 Then
    MsgBox "指定したフォルダに、ブックは見つかりませんでした。", , "検索完了"
Else
    MsgBox Bcnt & " のブックを検索し " & Dcnt & " 箇所を置換えました。", , "置換え完了"
End If
Set WB = Nothing
Set Rng = Nothing
End Sub

参考までにどうぞ^^



井上 大輔

この記事を書いたひと

ニコ株式会社の社長。html、cssのコーディングの基礎を独学で学び、引きこもってゴソゴソとコーディングをするのが趣味。 建物を見るとhtmlとcssが浮かぶほど。 webの力に惹かれ、今日もせっせとコーディングを行っています。 好きなことはいたずら。子供の頃の夢は社長。 ゲーム好きでテイルズシリーズ、龍が如くシリーズの話題は大好き。 圧倒的にドSですが、妻に怯えながらスマホのゲームに課金をしています。


カテゴリー: PC、WEB小ネタ   パーマリンク

コメントは受け付けていません。

関連記事


カテゴリー:PC、WEB小ネタ

ニコ株式会社 公式コラム

お知らせ

コラム新着情報

公式フェイスブックページ


Copyright ©ニコ株式会社 All Rights Reserved.