ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【Excel VBA】別々のブックに保存されている業務日報の記載内容を指定のブックにまとめるマクロ。




どうも、ゴリラストロングです。

 

 

 

今回は別々のブックに保存されている業務日報の記載内容を指定のブックにまとめるマクロを作成してみました。

 

 

 

まずは動画をご覧ください。


【Excel VBA】ゴリラストロングの雑記帳 業務日報まとめマクロ

 このように、別々のブックの内容が一つのブックにまとめられます。

 

 

 

スポンサーリンク

 

 

 

以下が元データです。

ブック名:ゴリラストロングの雑記帳2.xlsm シート名:業務日報まとめマクロ

f:id:gorilla-strong:20200226061231p:plain

ブック名:ゴリラストロングの雑記帳2.xlsm シート名:社員氏名

f:id:gorilla-strong:20200226061448p:plain

デスクトップ上に置いた各人の日報ファイル

f:id:gorilla-strong:20200226061607p:plain

業務日報の内容

f:id:gorilla-strong:20200226061724p:plain

 

 

 

処理の流れは以下のような感じです。

 ・②の順番に③を開く。

・④の内容を①に転記する。

・転記したら、ブックを閉じる。

・上記をファイルの数だけ繰り返す。

 

 

 

 

マクロ実行後が以下です。

f:id:gorilla-strong:20200226062502p:plain

 

 

 

 スポンサーリンク

 

 

以下がソースコードです。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub 業務日報まとめマクロ()

Dim matome As Object
Set matome = Workbooks("ゴリラストロングの雑記帳2.xlsm").Worksheets("業務日報まとめマクロ")

Dim shainn As Object
Set shainn = Workbooks("ゴリラストロングの雑記帳2.xlsm").Worksheets("社員氏名")

Dim user As String
user = InputBox("ユーザー名を入力してください。")

j = 3

Dim lastrow As Long
lastrow = shainn.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lastrow

Sleep 1500

Dim SHname As String
SHname = shainn.Range("A" & i)

Workbooks.Open "C:\Users\" & user & "\Desktop\【日報】" & SHname & ".xlsx"

Dim nippou As Object
Set nippou = Workbooks("【日報】" & SHname & ".xlsx").Worksheets(1)

matome.Range("A" & j) = nippou.Range("B2")
matome.Range("B" & j) = nippou.Range("B3")
matome.Range("C" & j) = nippou.Range("B4")
matome.Range("D" & j) = nippou.Range("B5")

j = j + 1

Workbooks("【日報】" & SHname & ".xlsx").Close

Next



End Sub

 

 

 

Workbooks.Open "C:\Users\" & user & "\Desktop\【日報】" & SHname & ".xlsx"

Workbooks("【日報】" & SHname & ".xlsx").Close

上記のコードの処理が難しかったです。

 

 

 

実際のお仕事でも、複数ブックのデータを一つのひな型にまとめるという業務はあるのではないでしょうか。

今回ご紹介したサンプルのように単純ではないかもしれませんが、応用して使っていただけると幸いです。

 

以上、ゴリラストロングでした。 

 

スポンサーリンク