たくさんのファイルに同じ処理をしたい時のExcelマクロ
2016/9/21
こんにちは。開発チームのNDK(日本酒大好きK)です。
お仕事でパソコンを使っている方ですと、Excelはおなじみだと思いますが、そんなExcelの機能の一つであるマクロとなると、なんだか難しそうだな~と避けてしまう方もいらっしゃるのではないでしょうか。
実は、使えるようになるととても便利な機能なんです。
例えば、うっかり異動前の部署名で資料をたくさん作ってしまった!なんてとき。
この、「開発Aチーム NDK」となっている部分を、「開発Bチーム NDK」にしたい場合、下記のようなコードになります。
Public Sub setName()
Application.ScreenUpdating = False
Application.DisplayAlerts = FalseDim inputDir As String
Dim saveDir As String
inputDir = "C:\input"
saveDir = "C:\output"
Call searchFile(inputDir, saveDir)MsgBox "処理が終了しました。", vbInformation
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
'ファイル検索と処理実行
Sub searchFile(ByVal strInputDir As String, ByVal strSaveDir As String)
Dim objFSO As Object
Dim varFolder As Variant
Dim varFile As Variant
Dim wkBook As Workbook
Dim strPath As String
'出力用のフォルダがない場合は作成する
If Dir(strSaveDir, vbDirectory) = "" Then
MkDir strSaveDir
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
'指定したフォルダの下のファイルをすべて処理
For Each varFile In objFSO.GetFolder(strInputDir).Files
strPath = strInputDir & "\" & varFile.Name
Set wkBook = Workbooks.Open(strPath)
wkBook.Sheets(1).Range("A1") = "開発Bチーム NDK"
wkBook.SaveAs fileName:=strSaveDir & "\" & varFile.Name
wkBook.Close
Next varFile
'更にサブフォルダも処理
For Each varFolder In objFSO.GetFolder(strInputDir).SubFolders
strSaveDir = Replace(varFolder.Path, "input", "output")
Call searchFile(varFolder.Path, strSaveDir)
Next varFolder
End Sub
修正したファイルが入ったフォルダ(C:\input)にある全てのファイルのA1セルに「開発Bチーム NDK」と入力し、修正したファイルを格納するフォルダ(C:\output)に同じファイル名で保存するというものです。
フォルダの中に更にサブフォルダがある場合も、全部処理します。
修正後のファイルはこちら。
「開発Aチーム NDK」となっていた部分が、「開発Bチーム NDK」に変更されました。
やっていることは単純でも、手でやろうとするとかなり手間がかかってしまうので、それを一気に実行できるのは、時間短縮に便利です。
事務所が移転になって、移転後に発送する資料は全部住所を変更しなくちゃ!といった際にも、同じフォーマットのファイルでしたら、同様の方法で、一括で住所の部分を変換することができますね。
今回は、A1セルに特定の文字を設定しましたが、特定の列を一律削除したり、入れ替えたり・・・といった使い方もできます。
会社のシステムで出力していたものを少しだけ変えたいけれど、システムを変えるのも大変だな・・・なんて時にも、システム自体を直すのではなく、マクロを使って出力結果を少し編集することで対応することができたりもします。
もう、少し複雑な処理をしたいけれどご自身で作るのはちょっと自信がないなという場合は、ぜひブラヴィッシモにご相談ください。
ブラヴィッシモでは、Webシステムの開発だけではなく、マクロを使った集計処理の開発なども行っています。
システムって大きな開発だけでしょ?などと思わず、お仕事の中のちょっとした「これが出来たら便利!」についても、お気軽にご相談いただき、みなさまのBravissimoのお手伝いができたら幸いです。
※弊社の社名「ブラヴィッシモ」は、ブラボー!の最上級。「サイコー!」とか「すげえ!」といった意味のイタリア語なんですよ。
カテゴリ:ブラヴィッシモのいろいろな記事
RELATED ARTICLES
- 2021/01/05本番環境でアラートを出してくれるChromeプラグイン 「ENV Alert」
- 2016/10/31「SiteGuard WP Plugin」でWordPressのセキュリティ対策を!
- 2016/09/14Instagramのハッシュタグの取得が制限されました
- 2016/09/09Selenium BuilderでCrossBrowserTesting.comのスナップショットを撮る方法
- 2016/08/31Androidアプリの .apk ファイルを解凍してみました
新着記事
人気記事
151 views | posted on 2016/08/31 Androidアプリの .apk ファイルを解凍してみました
84 views | posted on 2016/09/21 たくさんのファイルに同じ処理をしたい時のExcelマクロ
13 views | posted on 2016/08/17 type="file"を独自デザインにしてもIE9で選択ファイル名が表示されるJS