YouTubeにて、解説している講座動画の第4弾です!
VBAのコードを概要欄に掲載しようと思ったのですがどうやら角カッコ<>がHTMLのタグと認識されるのでコードが記載できないみたい。。
ということで、こちらのHPにてコード記載しておりますので、ぜひ見てみてください!
VBAコード
動画ではこちらのコードを利用しています。
'---------------------------------------------------- ' 以下のプログラムで使うのだが、気にしなくてよい Dim cnt As Long Dim folderPathArray() As String '---------------------------------------------------- '---------------------------------------------------- ' フォルダ内のファイルを順に開いていくコード '---------------------------------------------------- Sub フォルダ内のファイルを順に開く() Dim ws, 申請書ファイル As Workbook Set ws = ThisWorkbook.Worksheets("シート名") cnt = 0 パスワード = ws.Range("A2").Value ' 親フォルダのフォルダパスを取得→配下の申請書ファイルを全部取得 親フォルダパス = ws.Range("A1").Value Call GetFolder(親フォルダパス) ' 申請書ファイルを順に開く 申請書数 = UBound(folderPathArray) For i = 1 To 申請書数 申請書名 = folderPathArray(i) ' エクセルのパスワードがあれば、パスワードを解除しながら開く If パスワード <> "" Then Set 申請書ファイル = Workbooks.Open(申請書名, Password:=パスワード) Else Set 申請書ファイル = Workbooks.Open(申請書名) End If ' ************************************* ' 書き込み処理 ' ****************** With 申請書ファイル.ActiveSheet ws.Range("A" & i + 5).Value = .Range("A1").Value ws.Range("B" & i + 5).Value = .Range("A2").Value ws.Range("C" & i + 5).Value = .Range("A3").Value ws.Range("D" & i + 5).Value = .Range("A4").Value ws.Range("E" & i + 5).Value = .Range("A5").Value End With ' ************************************* 申請書ファイル.Close Next MsgBox "完了しました" End Sub '---------------------------------------------------- ' 以下は↑のプログラムから呼び出すコード(再帰処理用) ' おまじないと考えてOK。意味も分からず追加してください。 '---------------------------------------------------- Sub GetFolder(Path) Dim buf As String, f As Object If Right(Path, 1) <> "\" Then Path = Path & "\" End If With CreateObject("Scripting.FileSystemObject") For Each f In .GetFolder(Path).SubFolders Call GetFolder(f.Path) Next f End With buf = Dir(Path & "*.*") Do While buf <> "" cnt = cnt + 1 ReDim Preserve folderPathArray(cnt) folderPathArray(cnt) = Path & buf buf = Dir() Loop End Sub
学べる内容
エクセルファイルで作られた申請書を一つずつ開いてコピーすることなんてめちゃめちゃありますよね。
そんなときにこのコード利用していただければ同僚から感動されること間違いなしです。
- エクセルファイルを開いて操作する
- デバッグ
- ブレークポイント
- ステップイン
- ループ(カウンタの利用)
さいごに
基礎はあともう一つで終わりにしようかなあとか考えています。
なんか教えておいた方が良いことあるかなあ。詰め込みすぎた・・・ではまた!