Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 91d3a1d05a71e4e6…

MALICIOUS

Office (OLE)

772.5 KB Created: 2008-03-18 05:21:05 Authoring application: Microsoft Excel First seen: 2018-06-21
MD5: cfa4a7d15f91a415b8bbf475670fb6aa SHA-1: bbbe2266746159a48e4b680d3cf9979a3de46644 SHA-256: 91d3a1d05a71e4e60609382a1914237ee2c08203e6cb6dbd522aff891439aff6
110 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File T1566.001 Spearphishing Attachment

The sample is an Excel file containing VBA macros, including an Auto_Open macro and a CreateObject call, indicating malicious intent. The presence of VBA macros suggests an attempt to execute code upon opening or interaction, likely to download a second-stage payload. The document body contains Japanese text related to administrative districts, which may serve as a lure.

Heuristics 5

  • Reference to ShellExecute API high SC_STR_SHELLEXEC
    Reference to ShellExecute API
  • VBA macros detected medium 2 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
            myName = ThisWorkbook.Path & "\経審申請\原本"                                   'コピー元フォルダ
            Set myFso = CreateObject("Scripting.FileSystemObject")
            myFso.CopyFolder myName, strPathName, OverWriteFiles:=True                    'フォルダのコピー
  • Auto_Open macro low OLE_VBA_AUTO
    Auto_Open macro
    Matched line in script
    '''Sub Auto_Open()
    '''Dim myStr As String
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://www.cells.co.jp In document text (OLE body)
    • http://www.nga.gr.jp/tijifile/filetop.htmlIn document text (OLE body)
    • http://www.lasdec.nippon-net.ne.jp/com/addr/jyu_top.htmIn document text (OLE body)
    • http://ns.adobe.com/xap/1.0/In document text (OLE body)
    • http://www.w3.org/1999/02/22-rdf-syntax-ns#In document text (OLE body)
    • http://ns.adobe.com/iX/1.0/In document text (OLE body)
    • http://ns.adobe.com/xap/1.0/mm/In document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 105975 bytes
SHA-256: 0c53b2833660354a66e6f824ef47e8946034065b31f9da7392281e402d53726e
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   MsgBox "このファイルは保存することができません。", 16, "保存不可"
   Cancel = True
End Sub





Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Option Explicit


Attribute VB_Name = "Sheet2"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Option Explicit


Attribute VB_Name = "完成工事高F"
Attribute VB_Base = "0{B44BF068-6CC0-471B-AC93-D56D3501765C}{1E8DFEFE-941C-41B6-A28A-3D3B56C33869}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False



Option Explicit

Private Sub CommandButton1_Click()
Application.Calculation = xlCalculationManual
With Workbooks("keisinData.xls").Worksheets("DATA")
    For i = 421 To 575
        If i = 422 Or i = 428 Or i = 434 Or i = 440 Then     'コードは000形式にする
            Controls("Text" & i).Value = Format(Controls("Text" & i).Value, "000")
        End If
        If i = 452 Or i = 458 Or i = 464 Or i = 470 Then      'コードは000形式にする
            Controls("Text" & i).Value = Format(Controls("Text" & i).Value, "000")
        End If
        If i = 483 Or i = 489 Or i = 495 Or i = 501 Then     'コードは000形式にする
            Controls("Text" & i).Value = Format(Controls("Text" & i).Value, "000")
        End If
        If i = 514 Or i = 520 Or i = 526 Or i = 532 Then     'コードは000形式にする
            Controls("Text" & i).Value = Format(Controls("Text" & i).Value, "000")
        End If
        If i = 545 Or i = 551 Or i = 557 Or i = 563 Then     'コードは000形式にする
            Controls("Text" & i).Value = Format(Controls("Text" & i).Value, "000")
        End If
       .Cells(i, 2).Value = Controls("Text" & i).Text
    Next
    For i = 623 To 732
       .Cells(i, 2).Value = Controls("TextBox" & i).Text
    Next

End With
Application.Run "'" & ActiveWorkbook.Name & "'!頁指定へ" '現在表示されている頁を表示する'H16/5/28修正
Application.Calculation = xlCalculationAutomatic

MsgBox "登録しました。", 64, AAA
Unload Me
End Sub
Private Sub CommandButton2_Click()
営業年度.Show
End Sub

Private Sub Text421_Change()
Text422.Value = Cells(Text421.ListIndex + 135, 145).Text
End Sub
Private Sub Text427_Change()
Text428.Value = Cells(Text427.ListIndex + 135, 145).Text
End Sub
Private Sub Text433_Change()
Text434.Value = Cells(Text433.ListIndex + 135, 145).Text
End Sub
Private Sub Text439_Change()
Text440.Value = Cells(Text439.ListIndex + 135, 145).Text
End Sub
Private Sub Text452_Change()
Text453.Value = Cells(Text452.ListIndex + 135, 145).Text
End Sub
Private Sub Text458_Change()
Text459.Value = Cells(Text458.ListIndex + 135, 145).Text
End Sub
Private Sub Text464_Change()
Text465.Value = Cells(Text464.ListIndex + 135, 145).Text
End Sub
Private Sub Text470_Change()
Text471.Value = Cells(Text470.ListIndex + 135, 145).Text
End Sub
Private Sub Text483_Change()
Text484.Value = Cells(Text483.ListIndex + 135, 145).Text
End Sub
Private Sub Text489_Change()
Text490.Value = Cells(Text489.ListIndex + 135, 145).Text
End Sub
Private Sub Text495_Change()
Text496.Value = Cells(Text495.ListIndex + 135, 145).Text
End Sub
Private Sub Text501_Change()
Text502.Value = Cells(Text501.ListIndex + 135, 145).Text
End Sub
Private Sub Text514_Change()
Text515.Value = Cells(Text514.ListIndex + 135, 145).Text
End Sub
Private Sub Text520_Change()
Text521.Value = Cells(Text520.ListIndex + 135, 145).Text
End Sub
Private Sub Text526_Change()
Text527.Value = Cells(Text526.ListIndex + 135, 145).Text
End Sub
Private Sub Text532_Change()
Text533.Value = Cells(Text532.ListIndex + 135, 145).Text
End Sub
Private Sub Text545_Change()
Text546.Value = Cells(Text545.ListIndex + 135, 145).Text
End Sub
Private Sub Text551_Change()
Text552.Value = Cells(Text551.ListIndex + 135, 145).Text
End Sub
Private Sub Text557_Change()
Text558.Value = Cells(Text557.ListIndex + 135, 145).Text
End Sub
Private Sub Text563_Change()
Text564.Value = Cells(Text563.ListIndex + 135, 145).Text
End Sub

Private Sub UserForm_Initialize()
Dim n As Integer
With Workbooks("keisinData.xls").Worksheets("DATA")
    For i = 421 To 575
        Controls("Text" & i).Value = .Cells(i, 2).Text
    Next
    For i = 623 To 732
        Controls("TextBox" & i).Value = .Cells(i, 2).Text
    Next
    For i = 0 To 32
        For n = 421 To 439 Step 6
            Controls("Text" & n).AddItem Cells(135 + i, 146).Value
        Next n
        For n = 452 To 470 Step 6
            Controls("Text" & n).AddItem Cells(135 + i, 146).Value
        Next n
        For n = 483 To 501 Step 6
            Controls("Text" & n).AddItem Cells(135 + i, 146).Value
        Next n
        For n = 514 To 532 Step 6
            Controls("Text" & n).AddItem Cells(135 + i, 146).Value
        Next n
        For n = 545 To 563 Step 6
            Controls("Text" & n).AddItem Cells(135 + i, 146).Value
        Next n
    Next i
End With
For i = 451 To 575 Step 31
    Controls("Text" & i).AddItem "有"
    Controls("Text" & i).AddItem "無"
Next

MultiPage1.Value = 0
End Sub

Attribute VB_Name = "新規作成"
Attribute VB_Base = "0{7D7E24D5-E760-4670-8C78-A4DDB9526A82}{D145D3EA-DBAF-4230-A424-32C8E48F77F4}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False





Option Explicit
Dim msg As Integer
Dim i As Integer
Private Sub CommandButton1_Click()
If TextBox2.Value = "" Then
MsgBox "会社名が入力されていません。"
Exit Sub
End If
msg = MsgBox(TextBox2.Value & "の経審申請ファイルを作成しますか?", 1 + 32, "新規作成")
If msg <> 1 Then
Exit Sub
End If
Dim ファイル名 As String
ファイル名 = Dir(ActiveWorkbook.Path & "\経審\*ks.xls")
   Do While ファイル名 <> ""
          If ファイル名 = TextBox2.Value & "ks.xls" Then
          MsgBox "このファイルはすでに存在します。別の名前で作成してください。"
          TextBox2.SetFocus
          Exit Sub
          End If
        ファイル名 = Dir()
Loop
Unload Me
Cells(30, 2).Value = TextBox2.Value & "の経審申請ファイルを作成しています。しばらくお待ちください・・・"
Application.ScreenUpdating = False
Workbooks.Open Filename:=ActiveWorkbook.Path & "\経審原本.xls"
Worksheets("DATA").Unprotect
Worksheets("DATA").Cells(7, 2).Value = TextBox2.Value
Sheets("MENU").Select
ActiveSheet.Unprotect
Cells(3, 8).Value = TextBox2.Value

Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\経審\" & TextBox2.Value & "ks.xls"
ActiveWorkbook.Close

Application.DisplayAlerts = True

ThisWorkbook.Activate
ファイル名リスト表示
MsgBox TextBox2.Value & "の経審申請ファイルを作成しました。リストボックスから選択して読込んでください。"
Cells(30, 2).Value = ""
End Sub


Attribute VB_Name = "シート表示"
Option Explicit
Public i As Integer
Public Const AAA As String = "経審申請"
Const SW_SHOWNORMAL = 1
Const SE_ERR_NOASSOC = 31
Const ERROR_FILE_NOT_FOUND = 2&
Dim fname       As String
Public gPage       As Integer
Sub kTorikomi1()
    gPage = 20
    frmKojin.Show
End Sub
Sub kTorikomi2()
    gPage = 67
    frmKojin.Show
End Sub
Sub kTorikomi3()
    gPage = 113
    frmKojin.Show
End Sub
Sub kTorikomi4()
    gPage = 19
    frmKojin.Show
End Sub


Sub 取込み()
    frm取込み.Show
End Sub


Sub ツールへ()
    Dim file_name As Object

    For Each file_name In Windows
        If file_name.Caption Like "*ks.xls" Then
            MsgBox "事業所ファイルを閉じてから行なってください。", 16, AAA
            Exit Sub
        End If
    Next
    Workbooks.Open ThisWorkbook.Path & "\ツール.xls"
    Application.Run "ツール.xls!初期処理"
End Sub
Sub 初期処理()
    Dim strPathName As String
    Dim myFso       As Object
    Dim myName      As String
    Dim MyB         As String
    Dim StartFg     As String
    Dim VerNo       As String

'    StartFg = 0
    Application.Calculation = xlCalculationAutomatic
    

'    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = False
    MyB = ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value
    strPathName = ThisWorkbook.Path & "\経審申請\" & MyB
    Application.Calculation = xlCalculationManual
    
'20130523 kon
'    If Dir(strPathName, vbNormal) <> "" Then
    If Dir(strPathName & "\", vbNormal) <> "" Then
        
        strPathName = ThisWorkbook.Path & "\経審申請\" & MyB & "\keisinData.xls"
        Workbooks.Open strPathName
        バージョンチェック
    Else
        Cells(1, 7).Value = "初期設定中・・・"
        myName = ThisWorkbook.Path & "\経審申請\原本"                                   'コピー元フォルダ
        Set myFso = CreateObject("Scripting.FileSystemObject")
        myFso.CopyFolder myName, strPathName, OverWriteFiles:=True                    'フォルダのコピー
        Set myFso = Nothing
        Cells(1, 7).MergeArea.ClearContents
        
        strPathName = ThisWorkbook.Path & "\経審申請\" & MyB & "\keisinData.xls"
        Workbooks.Open strPathName
        基本データ取り込み
    
    End If
'20130510 kon
    DoEvents
    ThisWorkbook.Activate
    DoEvents

    
    
'    If MyB = Dir(strPathName, 16) Then
'        Sheets("MENU").Select
'        バージョンチェック
'    Else
'        Cells(1, 7).Value = "初期設定中・・・"
'        myName = ThisWorkbook.Path & "\経審申請\原本"                                   'コピー元フォルダ
'        myFso.CopyFolder myName, strPathName, OverWriteFiles:=True                    'フォルダのコピー
'        Cells(1, 7).MergeArea.ClearContents
'        StartFg = 1
'    End If
    
'    strPathName = ThisWorkbook.Path & "\経審申請\" & MyB & "\keisinData.xls"
'    If Dir(strPathName, vbNormal) <> "" Then
'        Workbooks.Open strPathName
'    Else
'        MsgBox "データが見つかりません。", vbInformation
'        Exit Sub
'    End If
    
'    If StartFg = 1 Then
'        基本データ取り込み
'        StartFg = 0
'    End If
    Application.Calculation = xlCalculationAutomatic
    'バージョン値の表示
    GetVerText VerNo
    ThisWorkbook.Sheets("MENU").Cells(4, 7).Value = "Ver " & VerNo
    ThisWorkbook.Sheets("MENU").Cells(1, 1).Select
    
    Application.ScreenUpdating = True

End Sub

Private Sub GetVerText(ByRef no As String)

    Dim TextFilename As String
    Dim f As Integer
    
    TextFilename = ThisWorkbook.Path & "\経審申請\原本\ver.txt"
    f = FreeFile()
    
    Open TextFilename For Input As #f
        Input #f, no
    Close #f

End Sub

Sub 基本データ取り込み()
        
        With Workbooks(ThisWorkbook.Worksheets("DATA").Cells(1, 1).Value)
            '郵便番号
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(4, 2).Value = Mid(.Worksheets("会社情報").Cells(9, 2).Value, 1, 3)
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(5, 2).Value = Mid(.Worksheets("会社情報").Cells(9, 2).Value, 5, 4)
            
            '所在地
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(6, 2).Value = .Worksheets("会社情報").Cells(10, 2).Value
            
            '会社名
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(7, 2).Value = .Worksheets("会社情報").Cells(8, 2).Value
            
            '代表者職名
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(8, 2).Value = .Worksheets("会社情報").Cells(11, 2).Value
            
            '代表者氏名
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(9, 2).Value = .Worksheets("会社情報").Cells(12, 2).Value

            '電話番号
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(10, 2).Value = .Worksheets("会社情報").Cells(13, 2).Value
    
            'FAX
'                Workbooks("keisinData.xls").Worksheets("DATA").Cells(94, 2).Value = .Worksheets("会社情報").Cells(14, 2).Value
    
        End With
    
        With Workbooks("DaMenu.xls").Worksheets("標準報酬月額")
    
            '住所
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(43, 2).Value = .Cells(153, 7).Value
            
            '氏名
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(44, 2).Value = .Cells(154, 7).Value

            '電話番号
                Workbooks("keisinData.xls").Worksheets("DATA").Cells(45, 2).Value = .Cells(155, 7).Value
    
            'FAX
'                Workbooks("keisinData.xls").Worksheets("DATA").Cells(94, 2).Value = .Cells(156, 7).Value
    
        End With
    
 

End Sub
Sub バージョンチェック()
    Dim Filename As String
    Dim Ver As String
    Dim MyB         As String
    
    MyB = ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value
    Filename = ThisWorkbook.Path & "\経審申請\" & MyB & "\ver.txt"    '会社フォルダのVer.txtにバージョン値が記載されている。
    Cells(5, 5).Value = GetTextData(1, Filename)                    'Ver.txtのバージョン値を取得
    
    Filename = ThisWorkbook.Path & "\経審申請\原本\ver.txt"    '会社フォルダのVer.txtにバージョン値が記載されている。
    Ver = GetTextData(1, Filename)                    'Ver.txtのバージョン値を取得
    
    If Ver = Cells(5, 5).Value Then                   'バージョンが一致していてたら何もしない
        Cells(5, 5).MergeArea.ClearContents
        Exit Sub
    End If
    If MsgBox("バージョンアップしますか?", 4 + 32, Cells(4, 5).Value) <> 6 Then Exit Sub
    
    Cells(1, 7).Value = Cells(4, 5).Value & "バージョンアップ中・・・"
    'Da保存フォルダがなかったら作成する
    If Dir(ThisWorkbook.Path & "\経審申請\" & MyB & "\Da保存", 16) = "" Then
        MkDir ThisWorkbook.Path & "\経審申請\" & MyB & "\Da保存"
    End If
    
    Call 書類入替
    
    Cells(1, 7).MergeArea.ClearContents
    Cells(1, 10).ClearContents
    Cells(5, 5).MergeArea.ClearContents
    FileCopy Filename, ThisWorkbook.Path & "\経審申請\" & MyB & "\ver.txt"

    MsgBox "完了", vbInformation
   
End Sub

Sub 書類入替()
    Dim MyB         As String
    Dim OS          As String
    Dim n           As String
    Dim f           As Object
    Dim g           As Object
    Dim Adb         As String
    Dim myBPath     As String
    Dim myFso       As Object
    Dim ファイル名 As String
    
    On Error GoTo ErrorCheck
    
    MyB = ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value '会社名
    myBPath = ThisWorkbook.Path & "\経審申請\" & MyB & "\"    '会社のフォルダパス
    
    OS = Application.OperatingSystem                        'OSのバージョン情報
'20130509 kon 2013
'    If Right(OS, 4) = "6.00" Or Right(OS, 4) = "6.01" Then
    If Right(OS, 4) = "6.00" Or Right(OS, 4) = "6.01" Or Right(OS, 4) = "6.02" Then
        
        n = 24 'Vista 7 コメント
        Else
        n = 14 'XP コメント
    End If
    
    Set myFso = CreateObject("Scripting.FileSystemObject")

    Set f = CreateObject("Shell.Application").Namespace(ThisWorkbook.Path & "\経審申請\原本\")        '原本フォルダ
    Set g = CreateObject("Shell.Application").Namespace(ThisWorkbook.Path & "\経審申請\" & MyB & "\") '会社フォルダ
    
    ファイル名 = Dir(ThisWorkbook.Path & "\経審申請\原本" & "\*.xls")  '会社フォルダのエクセルファイル
    
    Application.DisplayAlerts = False
    Do While ファイル名 <> ""
            
          '存在するか否か 存在しない場合は新規書類のためただ入れ込むだけ
          If myFso.FileExists(Filespec:=myBPath & ファイル名) Then
             Else
              myFso.CopyFile ThisWorkbook.Path & "\経審申請\原本\" & ファイル名, myBPath
              Cells(1, 10).Value = "新規書類" & ファイル名 & "設定中・・・"
          End If

          If f.GetDetailsOf(f.ParseName(ファイル名), n) <> g.GetDetailsOf(g.ParseName(ファイル名), n) Then 'コメントに記載されている文字を比較して異なっていたら・・・
              
            Cells(1, 10).Value = ファイル名 & "入れ替え中・・・"
            Cells(1, 10).Value = ""
            
            On Error Resume Next
            MkDir (ThisWorkbook.Path & "\経審申請\" & MyB & "\Da保存\")
            On Error GoTo 0
            If ファイル名 = "経営申請.xls" Then
                Call BukUpZaimu(ファイル名, ThisWorkbook.Path & "\経審申請\" & MyB & "\Da保存\" & Format(Date, "gemmdd") & "_" & Format(Time, "h_mm "), ThisWorkbook.Path & "\経審申請\" & MyB)
            Else
                Call BukUp(ファイル名, ThisWorkbook.Path & "\経審申請\" & MyB & "\Da保存\" & Format(Date, "gemmdd") & "_" & Format(Time, "h_mm ") & " " & ファイル名, ThisWorkbook.Path & "\経審申請\" & MyB)
            End If
            '原本フォルダのファイルと入替
            myFso.CopyFile ThisWorkbook.Path & "\経審申請\原本\" & ファイル名, myBPath '異なっていたら入れる。
                
            End If
            ファイル名 = Dir()
    Loop
    
    
    Set f = Nothing
    Set g = Nothing
    Set myFso = Nothing
    
    Application.DisplayAlerts = True
    
    Exit Sub

ErrorCheck:
    MsgBox "バージョンアップに失敗しました。", vbInformation
    Cells(1, 7).MergeArea.ClearContents
    Cells(1, 10).ClearContents
    Cells(5, 5).MergeArea.ClearContents
    End
End Sub
Sub BukUp(シート名, フルパス, 元パス)
'    Dim 保存ファイル名 As String
    Dim ファイル区分 As String
    Dim MyFile As String
'    Dim 台帳ファイル名 As String
    Dim 印刷範囲 As String
    Dim n As Integer
    Dim wRange As Range '印刷範囲以外のオブジェクトと印刷範囲内のマクロ付のオブジェクトを削除する
    Dim wLeft, wTop, wRight, wBottom
    Dim shapeLeft, shapeTop, shapeRight, shapeBottom
    Dim s As Shape
    
    Application.ReferenceStyle = xlA1
    
    Workbooks.Open 元パス & "\" & シート名

'    If Mid(シート名, 1, Len(シート名) - 4) = "施工金額" Then
'        印刷範囲 = "$B$4:$V$124"
'    ElseIf Mid(シート名, 1, Len(シート名) - 4) = "予備付属明細書" Then
'        印刷範囲 = "$B$6:$BA$147"
'    Else
        印刷範囲 = ActiveSheet.PageSetup.PrintArea
'    End If
    
'    If シート名 = "工事経歴" Then
'        n = Cells(10000, 3).End(xlUp).Row '最終行を取得して
'        Workbooks.Open ThisWorkbook.Path & "\経審KeepFile.xls"
'        Range("A1:Q" & n).Value = Workbooks(MyFile).Worksheets("工事経歴").Range("A1:Q" & n).Value
'
'    Else
        ActiveSheet.Unprotect

        Workbooks.Open ThisWorkbook.Path & "\建設KeepFile.xls"
        
        Workbooks(シート名).Worksheets(Mid(シート名, 1, Len(シート名) - 4)).Copy Before:=ActiveWorkbook.Sheets(1) 'シートをコピーする
        ActiveSheet.Unprotect
        With Range(印刷範囲)
            wTop = .Top
            wLeft = .Left
            wBottom = .Top + .Height
            wRight = .Left + .Width
        End With
        For Each s In ActiveSheet.Shapes
            shapeTop = s.Top
            shapeLeft = s.Left
            shapeBottom = s.Top + s.Height
            shapeRight = s.Left + s.Width
            If s.Name Like "Drop*" Then
            Else
            If (wTop <= shapeTop And wLeft <= shapeLeft And _
                wBottom >= shapeBottom And wRight >= shapeRight) And s.OnAction = "" Then
                Else
                s.Delete
            End If
            End If
        Next
        Cells.Copy
        Cells.PasteSpecial Paste:=xlValues '数式をすべて値にする
        
        Range(印刷範囲).Value = Workbooks(シート名).Worksheets(Mid(シート名, 1, Len(シート名) - 4)).Range(印刷範囲).Value2
        Worksheets("INFO").Range("A1").Value = ファイル区分
        Worksheets("INFO").Shapes("BOTAN2").Copy 'マクロボタンを設定する
        
        Worksheets(Mid(シート名, 1, Len(シート名) - 4)).Paste 'マクロボタンを設定する
'    End If
    Range("A1").Select
    Application.CutCopyMode = False
    ActiveWindow.DisplayGridlines = False
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs フルパス '保存する
    ActiveWorkbook.Close False
    Workbooks(シート名).Activate
    ActiveSheet.EnableSelection = xlUnlockedCells
    ActiveSheet.Protect UserInterfaceOnly:=True
    ActiveWorkbook.Close False
    
End Sub

Sub BukUpZaimu(シート名, フルパス, 元パス)
'    Dim 保存ファイル名 As String
    Dim ファイル区分 As String
    Dim MyFile As String
'    Dim 台帳ファイル名 As String
    Dim 印刷範囲 As String
    Dim n, i As Integer
    Dim wRange As Range '印刷範囲以外のオブジェクトと印刷範囲内のマクロ付のオブジェクトを削除する
    Dim wLeft, wTop, wRight, wBottom
    Dim shapeLeft, shapeTop, shapeRight, shapeBottom
    Dim s As Shape
    Dim sName As String
    
    
    Application.ReferenceStyle = xlA1
    
    Workbooks.Open 元パス & "\" & シート名
    For i = 1 To Worksheets.Count
        sName = Sheets(i).Name
        Sheets(i).Select
        印刷範囲 = ActiveSheet.PageSetup.PrintArea
'        Application.ScreenUpdating = False
'        Application.DisplayAlerts = False
        ActiveSheet.Unprotect
        
        Workbooks.Open ThisWorkbook.Path & "\建設KeepFile.xls"
        
        Workbooks(シート名).Worksheets(sName).Copy Before:=ActiveWorkbook.Sheets(1) 'シートをコピーする
        ActiveSheet.Unprotect
        With Range(印刷範囲)
            wTop = .Top
            wLeft = .Left
            wBottom = .Top + .Height
            wRight = .Left + .Width
        End With
        For Each s In ActiveSheet.Shapes
            shapeTop = s.Top
            shapeLeft = s.Left
            shapeBottom = s.Top + s.Height
            shapeRight = s.Left + s.Width
            If s.Name Like "Drop*" Then
            Else
            If (wTop <= shapeTop And wLeft <= shapeLeft And _
                wBottom >= shapeBottom And wRight >= shapeRight) And s.OnAction = "" Then
                Else
                s.Delete
            End If
            End If
        Next
        Cells.Copy
        Cells.PasteSpecial Paste:=xlValues '数式をすべて値にする
        
        Range(印刷範囲).Value = Workbooks(シート名).Worksheets(sName).Range(印刷範囲).Value2
        Worksheets("INFO").Range("A1").Value = ファイル区分
        Worksheets("INFO").Shapes("BOTAN2").Copy 'マクロボタンを設定する
        
        Worksheets(sName).Paste 'マクロボタンを設定する
        Range("A1").Select
        Application.CutCopyMode = False
        ActiveWindow.DisplayGridlines = False
        Application.CutCopyMode = False
        ActiveWorkbook.SaveAs フルパス & sName & " " & シート名 '保存する
        ActiveWorkbook.Close False
    Next i

    Workbooks(シート名).Activate
    ActiveSheet.EnableSelection = xlUnlockedCells
    ActiveSheet.Protect UserInterfaceOnly:=True
    ActiveWorkbook.Close False
    
End Sub

Public Function GetTextData(ByVal i As Integer, ByVal Filename As String) As String
  
    Dim buffer() As String '文字列受け取り用
    
    GetStringArray buffer, Filename

    GetTextData = buffer(i - 1)

End Function
Sub 分析申請書へ()
    シートへ ("分析申請書")
End Sub
Sub 資格の技術職員名簿へ()
    シートへ ("資格の技術職員名簿一覧表")
End Sub
Sub 完成工事高付表へ()
    シートへ ("工事種類別完成工事高付表")
End Sub


Sub 提出票へ()
    シートへ ("提出票")
End Sub
Sub 申請付表へ()
    シートへ ("申請付表")
End Sub
Sub 審査項目へ()
    シートへ ("審査項目")
End Sub
Sub 兼業事業へ()
    シートへ ("兼業事業")
End Sub
Sub 経営申請へ()
    シートへ ("経営申請")
End Sub
Sub 技術職員名簿へ()
    シートへ ("技術職員名簿")
End Sub
Sub 完成工事高へ()
    シートへ ("完成工事高")
End Sub
Sub 手数料Bへ()
    シートへ ("手数料B")
End Sub
Sub 手数料へ()
    シートへ ("手数料")
End Sub

Sub 経営申請シートへ(fNam As String)
    Dim AA As Variant
    Dim i As Integer
    Dim n As Integer
    Dim file_name As Object
    Dim myPath As String
    
    AA = Array("経営申請", "経営申請2")
    
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    myPath = PathCombine(ThisWorkbook.Path, "経審申請")
    myPath = PathCombine(myPath, ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value)
    
    
    Application.DisplayAlerts = False
    Workbooks.Open PathCombine(myPath, "経営申請.xls"), Notify:=False
    Application.DisplayAlerts = True
    
    For i = 0 To 7
        Sheets(AA(i)).Select
        Cells(1, 180).Value = "[keisinData.xls]DATA!"
    Next

    Call kSyori
    
    Sheets(fNam).Select

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Sub シートへ(シート)
    Dim myPath As String
    Dim wb As Workbook

    Application.ScreenUpdating = False
    myPath = PathCombine(ThisWorkbook.Path, "経審申請")
    myPath = PathCombine(myPath, ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value)
   
    Application.ScreenUpdating = False
    
    For Each wb In Workbooks
        If wb.Name = ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value Then
            wb.Activate
            
            Exit Sub
        End If
    Next
    
    Application.DisplayAlerts = False
    Workbooks.Open PathCombine(myPath, シート & ".xls"), Notify:=False
    Application.DisplayAlerts = True
    
    Call kSyori
    
    Sheets(シート).Select
    Cells(1, 180).Value = "[keisinData.xls]DATA!"
'    Cells(1, 180).Font.ThemeColor = xlThemeColorDark1
    If シート = "経営申請" Then
        Sheets("経営申請2").Select
        Cells(1, 180).Value = "[keisinData.xls]DATA!"
        Sheets(シート).Select
    End If

    Cells(1, 1).Select
    
    
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.ScrollRow = 1
    Application.ScreenUpdating = True

End Sub
Sub kSyori()
    Application.ScreenUpdating = False
    Dim s As Worksheet
    For Each s In Worksheets
        With s
            .Activate
            ActiveWindow.DisplayHeadings = False
            .EnableSelection = xlUnlockedCells
            .Protect UserInterfaceOnly:=True
        End With
    Next
    ActiveWindow.DisplayWorkbookTabs = False
End Sub

Public Sub GetStringArray(ByRef str() As String, ByVal Filename As String)

    Dim FileNumber As Integer 'ファイル番号
    Dim LineCount As Integer '行数

    '初期処理
    FileNumber = FreeFile
    LineCount = 0

    'DOTO FreeFileで番号を得ること
    Open Filename For Input As FileNumber

        Do While Not EOF(FileNumber)
            'ファイルの長さで配列をデータを保持しながら初期化
            ReDim Preserve str(LineCount)
    
            'ファイルをバイナリで読み込んで配列に格納
            Line Input #FileNumber, str(LineCount)
            LineCount = LineCount + 1
        Loop
           
    Close #FileNumber

End Sub
Public Function PathCombine(ByVal path1 As String, ByVal path2 As String) As String

    If Right(path1, 1) = "\" Then
        PathCombine = path1 & path2
    Else
        PathCombine = path1 & "\" & path2
    End If

End Function


'''Sub Auto_Open()
'''Dim myStr As String
'''
'''
'''Worksheets("MENU").Select
'''Cells(30, 2).Value = "しばらくお待ちください・・・"
'''Application.ScreenUpdating = False
'''Call メニューバーの作成
'''シート限定
'''ファイル名リスト表示
'''    If Dir(ThisWorkbook.Path & "\gyouseisyosi.dat") = "gyouseisyosi.dat" Then
'''        Open ThisWorkbook.Path & "\gyouseisyosi.dat" For Input As #1
'''        With Worksheets("DATA")
'''            .Unprotect
'''            For i = 1 To 3
'''                Input #1, myStr
'''                .Range("P" & i + 1).Value = myStr
'''            Next
'''        Close #1
'''        .Protect
'''        End With
'''
'''    End If
'''
'''Cells(30, 2).Value = ""
'''Cells(7, 5).Select
'''Application.Calculation = xlAutomatic
'''ActiveWindow.WindowState = xlMaximized
'''End Sub
Sub シート限定()
Dim s As Worksheet
  For Each s In Worksheets
    With s
      .Activate
      .EnableSelection = xlUnlockedCells
      .Protect UserInterfaceOnly:=True
       ActiveWindow.DisplayHeadings = False
    End With
  Next
Worksheets("MENU").Select
ActiveWindow.DisplayWorkbookTabs = False
End Sub
Sub ファイル名リスト表示()
ActiveSheet.ListBoxes("FList").RemoveAllItems
Dim ファイル名 As String
ファイル名 = Dir(ActiveWorkbook.Path & "\経審\*ks.xls")
   Do While ファイル名 <> ""
       With ActiveSheet.ListBoxes("FList")
             .AddItem Left(ファイル名, Len(ファイル名) - 6)
        ファイル名 = Dir()
    End With
    Loop
Cells(3, 5).Select
End Sub

Sub 削除()
    With ActiveSheet.ListBoxes("FList")
        If .Value > 0 Then
            Application.ScreenUpdating = False
            Dim file_name As Object
                For Each file_name In Windows
                   If file_name.Caption = .List(.Value) & "ks.xls" Then
                      MsgBox "このファイルは現在起動中です。起動中のファイルは削除できません。"
                       Exit Sub
                    End If
                 Next
            If MsgBox("選択されたファイルを削除してもいいですか?(元に戻せません。)", 1 + 48, "削除") <> 1 Then Exit Sub
                Kill ActiveWorkbook.Path & "\経審\" & .List(.Value) & "ks.xls"
                .RemoveItem (.Value)
                MsgBox "削除しました。", , AAA
                Application.ScreenUpdating = True
        Else
        MsgBox "ファイルを選択して実行してください。", , AAA
        Exit Sub
        End If
    End With
End Sub

Sub 行政書士へ()
行政書士F.Show
End Sub
Sub シートMENU()
Sheets("MENU").Select
End Sub
Sub マニュアルへ()
    Application.Run "DaAddin.xla!OpenManual"
End Sub
Sub 戻るへ()
On Error Resume Next
Sheets("MENU").Select
Application.ScreenUpdating = False
Workbooks(Worksheets("HELP").Cells(2, 17).Value).Activate
Sheets("MENU").Select
End Sub
Sub 新規読込()
On Error GoTo ErrorCheck
Application.ScreenUpdating = False
Dim file_name As Object
     For Each file_name In Windows
        If file_name.Caption = "経審原本.xls" Then
           Workbooks("経審原本.xls").Activate
            Exit Sub
         End If
      Next
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & "経審原本.xls"
シート限定
Exit Sub
ErrorCheck:
   MsgBox Error(Err), , "エラー"
End Sub
Sub 新規作成へ()
新規作成.Show
End Sub
Sub 保護解除()
ActiveSheet.Unprotect
MsgBox "シートの保護を解除しました。", , "保護解除"
End Sub
Sub スクロール範囲限定解除()
ActiveSheet.ScrollArea = ""
End Sub
Sub 終了()
    Dim wb As Workbook
    Dim n As Integer
    
    If MsgBox("終了しますか?", 4 + 32, "終了") <> 6 Then Exit Sub
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    For Each wb In Workbooks
        Cells(1, 7).Value = wb.Name & " 終了準備中・・・・"
        If wb.Path = ThisWorkbook.Path & "\経審申請\" & ThisWorkbook.Worksheets("DATA").Cells(2, 1).Value Then
            wb.Save  '強制的に保存して
            wb.Close '強制的に閉じる
…