別ファイルから別ファイルへ取込する

Public Const NETMaster As String = "D:0_マスタ\マスタ_経費請求申請と承認(スポットと定期).xlsm"

 

Sub 今年度空ファイル作成()

 

高速開始

 

    Dim myFolderPath As String

    Dim myFileName As String

    Dim shinFile As String

    Dim today As String

    Dim NET As String

    Dim 事業場 As String

    Dim 事業場No As String

    Dim filepath As String

    Dim i As Long

    Dim ei As Long

    

    Dim SetFile As String

    Dim wbMoto As Workbook, wbSaki As Workbook

    Dim FileName As String

    Dim endrow As String

    

    Application.DisplayAlerts = False                               '画面ちらつき防止停止

                                                                'マスターデータ取り込み元をブック名をセット(取り込み元)"

    Application.StatusBar = "■■■■■共通マスタ取込中■■■■■"   '進行状況をステータスバーへ表示する

 

    Set wbMoto = Workbooks("マスタ.xlsm")

    SetFile = NETMaster

   

    Set wbSaki = Workbooks.Open(NETMaster)

    

    Workbooks.Open FileName:=SetFile, ReadOnly:=True, UpdateLinks:=0 'マスターデータファイルを読み取り専用で開きます()

    Application.StatusBar = "■■■■■共通マスタ取込中■■■■■"

        '既存マスタ

     i = wbMoto.Sheets("事業場共通").Range("K" & Rows.Count).End(xlUp).Row  '最終行

        wbMoto.Worksheets("事業場共通").Range("A2:R" & i).Copy             'シート名の「事業場共通」税区分までの範囲をコピー

        wbSaki.Worksheets("マスタ").Range("A1").PasteSpecial xlPasteFormulasAndNumberFormats  'シート名「マスタ」A1から貼り付け

        Application.CutCopyMode = False 'コピー切り取りを解除

    Application.StatusBar = "■■■■■部署マスタ取込中■■■■■"

        

        '部署マスタ

     i = wbMoto.Worksheets("事業場共通").Range("T" & Rows.Count).End(xlUp).Row  '最終行

        wbMoto.Worksheets("事業場共通").Range("T2:U" & i).Copy             'シート名の「事業場共通」部署マスタの範囲をコピー

        wbSaki.Worksheets("マスタ").Range("Z1").PasteSpecial xlPasteFormulasAndNumberFormats  'シート名「マスタ」A1から貼り付け

        Application.CutCopyMode = False 'コピー切り取りを解除

       '会社マスタ~社員マスタ

    Application.StatusBar = "■■■■■事業場別承認マスタ取込中■■■■■"

 

     i = wbMoto.Worksheets("事業場共通").Range("AC" & Rows.Count).End(xlUp).Row  '最終行

        wbMoto.Worksheets("事業場共通").Range("W2:AJ" & i).Copy             'シート名の「Mマスタ」セルの範囲をコピー

        wbSaki.Worksheets("マスタ").Range("AC1").PasteSpecial xlPasteFormulasAndNumberFormats  'シート名「マスタ」A1から貼り付け

        Application.CutCopyMode = False 'コピー切り取りを解除

           

   ei = wbMoto.Worksheets("事業場共通").Range("AB" & Rows.Count).End(xlUp).Row  '最終行

     For i = 3 To ei

     

     today = Format(Date, "yyyy") + 1

    Set wbMoto = Workbooks("マスタ.xlsm")

    Set wbSaki = Workbooks("マスタ_経費請求申請と承認(スポットと定期).xlsm")

     

   事業場 = wbMoto.Sheets("事業場共通").Range("AB" & i).Value

    Application.StatusBar = "■■■■■" & 事業場 & "のファイル作成中■■■■■"

   事業場No = wbMoto.Sheets("事業場共通").Range("Z" & i).Value

   filepath = 事業場No & "_" & 事業場

   

       endrow = wbMoto.Worksheets(事業場).Range("A" & Rows.Count).End(xlUp).Row

        wbMoto.Worksheets(事業場).Range("A2:U" & endrow).Copy             'シート名の「Mマスタ」セルの範囲をコピー

        wbSaki.Worksheets("マスタ").Range("AV1").PasteSpecial xlPasteFormulasAndNumberFormats  'シート名「マスタ」A1から貼り付け

        Application.CutCopyMode = False 'コピー切り取りを解除

      

     wbSaki.Worksheets("スポット一覧").Range("C4").Value = 事業場

     wbSaki.Worksheets("定期購入").Range("C4").Value = 事業場

    Application.DisplayAlerts = True                                 '画面ちらつき防止停止

 

NET = "\\192.168.1.9\network-data\事業場\00 全般\個人フォルダ\" & filepath & "\"

 

   myFolderPath = NET

 

    myFileName = today & "_" & 事業場 & "経費請求申請と承認(スポットと定期).xlsm"

    

    shinFile = myFolderPath & myFileName

    

    

    ActiveWorkbook.SaveCopyAs shinFile

    

    Next i

        wbSaki.Close False

            Set wbSaki = Nothing

            Set wbMoto = Nothing

    Application.StatusBar = False

    

    高速終了

End Sub

 

★ボタンクリックでYesNoで分岐

Private Sub CommandButton1_Click() '年度更新

        Dim rc As VbMsgBoxResult

        rc = MsgBox("次年度のファイルを作成しますか?", vbYesNo + vbQuestion)

        If rc = vbYes Then

            MsgBox "次年度のファイルを作成します", vbInformation      

            今年度空ファイル作成

           MsgBox "完了"

           ActiveWorkbook.Close SaveChanges:=False

        Else

            MsgBox "中止します", vbCritical

        End If

End Sub