Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 7abe49f78cb18915…

MALICIOUS

Office (OOXML)

2.19 MB Created: 2009-08-11 03:08:34 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2019-09-30
MD5: 4907faf8e7d6a62a86a4078ba3fb35fb SHA-1: 947d4470d0090e6e6dfa0e18828c2f592daf8413 SHA-256: 7abe49f78cb18915e021e20fe79a004544a8a4edba362124c440214f72354d60
178 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment T1027 Obfuscated Files or Information

The file is an Excel macro-enabled workbook containing an obfuscated VBA loader triggered by the Workbook_Open event. This loader likely attempts to download and execute a secondary payload, a common technique for initial compromise. The presence of an external relationship pointing to a local file path suggests a potential staging or delivery mechanism.

Heuristics 7

  • VBA project inside OOXML medium 3 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Obfuscated auto-exec VBA loader critical OLE_VBA_OBFUSCATED_AUTOEXEC_LOADER
    Auto-exec VBA reconstructs strings with a heavy custom decoder (numeric char-array, repeated hex-string decode, or junk-token Replace removal) and feeds them to a COM-instantiation or execution sink. This obfuscated-loader shape keeps CreateObject/Shell/URL indicators out of the macro source.
    Matched line in script
    'Objectの生成
    Set xmlObj = CreateObject("MSXML2.DOMDocument")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    'Objectの生成
    Set xmlObj = CreateObject("MSXML2.DOMDocument")
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Attribute VB_Customizable = True
    Private Sub Workbook_Open()
  • External relationship high OOXML_EXTERNAL_REL
    External target in xl/externalLinks/_rels/externalLink1.xml.rels: file:///C:\Users\s-eihuku\Desktop\Original_topics_002_002.xlsm
  • Hidden worksheet (hidden) low OOXML_HIDDEN_SHEET
    Excel workbook contains 4 hidden sheet(s) — hidden sheets are commonly used to conceal macro code, staging data, or intermediate payload construction
  • 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.w3.org/2001/XMLSchema OOXML external relationship
    • http://www.w3.org/2001/XMLSchema-instanceOOXML external relationship
    • http://www.w3.org/2001/XMLSchOOXML external relationship

Extracted artifacts 32

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 267448 bytes
SHA-256: 366ca281b89c2139a4cad0b13754851eb8a73e2e9498a7d460a6258e14bfa5fa
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Module11"

Sub 特定印刷()

    '提出先入力チェック
    If Sheet2.Range("B10").Value = "" Then
        If MsgBox("提出先未入力です。印刷を実行しますか?", vbOKCancel) = vbCancel Then
            Exit Sub
        End If
    End If
        
    '印刷フッターの設定
    Dim strFt, StrFt2 As String
    strFt = "特定事業者番号:" & Sheet2.Range("T31").Value & Sheet2.Range("Y31").Value & Sheet2.Range("AD31").Value & _
            Sheet2.Range("AI31").Value & Sheet2.Range("AN31").Value & Sheet2.Range("AS31").Value & Sheet2.Range("AX31").Value
    
    Sheet2.PageSetup.LeftFooter = strFt
    Sheet3.PageSetup.LeftFooter = strFt
    Sheet4.PageSetup.LeftFooter = strFt
    
    'V5.0 ACEL
    If Application.Version = "14.0" Then
       Sheets(Array(4, 5)).Select
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
       Sheets(Array(6)).Select
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Else
       Sheets(Array(4, 5, 6)).Select
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
    Sheet5.Activate
    
End Sub


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
Private Sub Workbook_Open()

    Application.MoveAfterReturn = True
    Application.MoveAfterReturnDirection = xlToRight
    
    'V4.0 ACEL
    ActiveSheet.Unprotect Password:="tool"
    Sheet5.Protect UserInterfaceOnly:=True, Password:="tool"
    Sheet2.Protect UserInterfaceOnly:=True, Password:="tool"
    Sheet3.Protect UserInterfaceOnly:=True, Password:="tool"
    Sheet4.Protect UserInterfaceOnly:=True, Password:="tool"
    Sheet8.Protect UserInterfaceOnly:=True, Password:="tool"
    Sheet9.Protect UserInterfaceOnly:=True, Password:="tool"
    
  '  ActiveSheet.Protect Password:="tool"


End Sub

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
Private Sub Worksheet_Change(ByVal Target As Range)

'提出先
    If (Target.row = 10) And (Target.column = 2) Then
        If Len(Cells(10, 2)) > 100 Then
          If MsgBox("提出先は100文字以内で入力して下さい。", vbOKOnly) = vbOK Then
            Cells(10, 2).Value = ""
            Cells(10, 2).Select
          End If
        End If
    End If

'社名・住所変更の有無
    If ((Target.row = 140 Or Target.row = 141) And (Target.column = 17)) Then
        If (Cells(140, 17).Value <> "") Or (Cells(141, 17).Value <> "") Then
            Shapes("Oval_有").Visible = msoTrue
            Shapes("Oval_無").Visible = msoFalse
        Else
            Shapes("Oval_有").Visible = msoFalse
            Shapes("Oval_無").Visible = msoTrue
        End If
    End If
    
'V5.0 ACEL
'商標又は商号等の保護・解除
    If ((Target.row = 31) And (Target.column = 50)) Then
        Dim cell As Range
        Set cell = Sheet4.Cells(1969, 20)
        If (Cells(31, 50).Value = "2") Then
            cell.MergeArea.Locked = False
        Else
            cell.MergeArea.Value = ""
            cell.MergeArea.Locked = True
        End If
    End If

End Sub


Attribute VB_Name = "Sheet3"
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

Attribute VB_Name = "Sheet4"
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
Attribute VB_Control = "TgBtt4, 24436, 5, MSForms, ToggleButton"
Attribute VB_Control = "CheckBox22, 2427, 6, MSForms, CheckBox"
Attribute VB_Control = "CheckBox21, 2428, 7, MSForms, CheckBox"
Attribute VB_Control = "CheckBox20, 2442, 8, MSForms, CheckBox"
Attribute VB_Control = "CheckBox19, 2444, 9, MSForms, CheckBox"
Attribute VB_Control = "CheckBox18, 2445, 10, MSForms, CheckBox"
Attribute VB_Control = "CheckBox17, 2446, 11, MSForms, CheckBox"
Attribute VB_Control = "CheckBox16, 2447, 12, MSForms, CheckBox"
Attribute VB_Control = "CheckBox15, 2448, 13, MSForms, CheckBox"
Attribute VB_Control = "CheckBox14, 2449, 14, MSForms, CheckBox"
Attribute VB_Control = "CheckBox13, 2451, 15, MSForms, CheckBox"
Attribute VB_Control = "CheckBox12, 2452, 16, MSForms, CheckBox"
Attribute VB_Control = "CheckBox11, 2453, 17, MSForms, CheckBox"
Attribute VB_Control = "CheckBox10, 2455, 18, MSForms, CheckBox"
Attribute VB_Control = "CheckBox9, 2456, 19, MSForms, CheckBox"
Attribute VB_Control = "CheckBox8, 2458, 20, MSForms, CheckBox"
Attribute VB_Control = "CheckBox7, 2459, 21, MSForms, CheckBox"
Attribute VB_Control = "CheckBox6, 2460, 22, MSForms, CheckBox"
Attribute VB_Control = "CheckBox5, 2461, 23, MSForms, CheckBox"
Attribute VB_Control = "CheckBox4, 2463, 24, MSForms, CheckBox"
Attribute VB_Control = "CheckBox3, 2465, 25, MSForms, CheckBox"
Attribute VB_Control = "CheckBox2, 2466, 26, MSForms, CheckBox"
Attribute VB_Control = "CheckBox1, 2467, 27, MSForms, CheckBox"
Attribute VB_Control = "TgBtt1, 23561, 28, MSForms, ToggleButton"
Attribute VB_Control = "TgBtt2, 23562, 29, MSForms, ToggleButton"
Attribute VB_Control = "TgBtt3, 24306, 30, MSForms, ToggleButton"
Attribute VB_Control = "CheckBox23, 25075, 31, MSForms, CheckBox"
Attribute VB_Control = "CheckBox24, 25076, 32, MSForms, CheckBox"
Attribute VB_Control = "CheckBox25, 25077, 33, MSForms, CheckBox"
Option Explicit

Private Sub CheckBox7_Click()

Application.ScreenUpdating = False
Application.EnableEvents = False

If Cells(608, 63).Value = True Then
    Cells(606, 63).Value = False
    Cells(607, 63).Value = False
    Cells(611, 63).Value = False
    Cells(612, 63).Value = False
    Cells(616, 63).Value = False
    Cells(617, 63).Value = False
    Cells(613, 63).Value = True
    Cells(618, 63).Value = True
Else
    Cells(613, 63).Value = False
    Cells(618, 63).Value = False
End If

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

'V4.0 ACEL
Private Sub TgBtt1_Click()

    Dim rngStart As Range, rngEnd As Range
    Dim BX As Single, BY As Single, EX As Single, EY As Single

    If TgBtt1.Value = True Then

        ActiveSheet.Unprotect Password:="tool"

        'Shapeを配置するための基準となるセル
        Set rngStart = Range("B167")
        Set rngEnd = Range("BG162")
        
        'セルのLeft、Top、Widthプロパティを利用して位置決め
        BX = rngStart.Left
        BY = rngStart.Top
        EX = rngEnd.Left + rngEnd.Width
        EY = rngEnd.Top
        
        
        With ActiveSheet.Shapes.AddLine(BX, BY, EX, EY)
         '   .ForeColor.RGB = vbBlack
         '   .Weight = 1.5
         '  .DashStyle = msoLineSolid
           .Name = "UE"
           .Locked = True
        End With
        
        Range("B162:BG166").Select
        Selection.ClearContents

        Range("B162").Select
        ActiveSheet.Protect Password:="tool"
    
    ElseIf TgBtt1.Value = False Then

        ActiveSheet.Unprotect Password:="tool"

        ActiveSheet.Shapes("UE").Delete
        
        ActiveSheet.Protect Password:="tool"

    End If

End Sub

Private Sub TgBtt2_Click()

    Dim rngStart As Range, rngEnd As Range
    Dim BX As Single, BY As Single, EX As Single, EY As Single

    If TgBtt2.Value = True Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        'Shapeを配置するための基準となるセル
        Set rngStart = Range("C185")
        Set rngEnd = Range("BF175")
        
        'セルのLeft、Top、Widthプロパティを利用して位置決め
        BX = rngStart.Left
        BY = rngStart.Top
        EX = rngEnd.Left + rngEnd.Width
        EY = rngEnd.Top
        
        
        With ActiveSheet.Shapes.AddLine(BX, BY, EX, EY)
         '   .ForeColor.RGB = vbBlack
         '   .Weight = 1.5
         '  .DashStyle = msoLineSolid
           .Name = "SITA"
           .Locked = True
        End With
        
        
        Range("C175:BF184").Select
        Selection.ClearContents
        
        Range("B175").Select
        
        ActiveSheet.Protect Password:="tool"
    
    ElseIf TgBtt2.Value = False Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        ActiveSheet.Shapes("SITA").Delete
        
        ActiveSheet.Protect Password:="tool"
    
    End If

End Sub


Private Sub TgBtt3_Click()

    Dim rngStart As Range, rngEnd As Range
    Dim BX As Single, BY As Single, EX As Single, EY As Single

    If TgBtt3.Value = True Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        'Shapeを配置するための基準となるセル
        Set rngStart = Range("C571")
        Set rngEnd = Range("BF561")
        
        'セルのLeft、Top、Widthプロパティを利用して位置決め
        BX = rngStart.Left
        BY = rngStart.Top
        EX = rngEnd.Left + rngEnd.Width
        EY = rngEnd.Top
        
        With ActiveSheet.Shapes.AddLine(BX, BY, EX, EY)
         '   .ForeColor.RGB = vbBlack
         '   .Weight = 1.5
         '  .DashStyle = msoLineSolid
           .Name = "TUIKA"
           .Locked = True
        End With
        
        Range("C561:BF571").Select
        Selection.ClearContents
        
        Range("B561").Select
        
        ActiveSheet.Protect Password:="tool"
        
        'ActiveSheet.Shapes("TgBtt2").Select
    
    ElseIf TgBtt3.Value = False Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        ActiveSheet.Shapes("TUIKA").Delete
        
        ActiveSheet.Protect Password:="tool"
    
    End If

End Sub


Private Sub TgBtt4_Click()

    Dim rngStart As Range, rngEnd As Range
    Dim BX As Single, BY As Single, EX As Single, EY As Single

    If TgBtt4.Value = True Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        'Shapeを配置するための基準となるセル
        Set rngStart = Range("B215")
        Set rngEnd = Range("BG207")
        
        'セルのLeft、Top、Widthプロパティを利用して位置決め
        BX = rngStart.Left
        BY = rngStart.Top
        EX = rngEnd.Left + rngEnd.Width
        EY = rngEnd.Top
        
        With ActiveSheet.Shapes.AddLine(BX, BY, EX, EY)
           .Name = "TUIKA2"
           .Locked = True
        End With
        
        Range("O209:BG214").Select
        Selection.ClearContents
        
                
        '2018.03 ACEL
        '設備欄
        Set rngStart = Range("B234")
        Set rngEnd = Range("BG218")
        
        'セルのLeft、Top、Widthプロパティを利用して位置決め
        BX = rngStart.Left
        BY = rngStart.Top
        EX = rngEnd.Left + rngEnd.Width
        EY = rngEnd.Top
        
        With ActiveSheet.Shapes.AddLine(BX, BY, EX, EY)
           .Name = "設備1"
           .Locked = True
        End With
        
        Range("S218:BG233").Select
        Selection.ClearContents
        
        
        Range("O209").Select
        
        ActiveSheet.Protect Password:="tool"
    
    ElseIf TgBtt4.Value = False Then
    
        ActiveSheet.Unprotect Password:="tool"
    
        ActiveSheet.Shapes("TUIKA2").Delete
        ActiveSheet.Shapes("設備1").Delete
        
        ActiveSheet.Protect Password:="tool"
    
    End If


End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    Dim cr As Integer
    Dim cc As Integer

    cr = CInt(Target.row)
    cc = CInt(Target.column)
    
    '第5表(イ)変更時
    If ((Target.row >= 30 And Target.row <= 59) And (Target.column = 3)) Then
        Call LenChk(30, 59, cr, cc)
    '第5表(ロ)変更時
    ElseIf ((Target.row >= 61 And Target.row <= 90) And (Target.column = 3)) Then
        Call LenChk(61, 90, cr, cc)
    '第5表(ハ)変更時
    ElseIf ((Target.row >= 97 And Target.row <= 126) And (Target.column = 3)) Then
        Call LenChk(97, 126, cr, cc)
    '第5表(ニ)変更時
    ElseIf ((Target.row >= 128 And Target.row <= 157) And (Target.column = 3)) Then
        Call LenChk(128, 157, cr, cc)
    '第6表 ベンチマーク事業選択時
    ElseIf ((Target.row >= 162 And Target.row <= 171) And (Target.column = 2 Or Target.column = 5)) Then
        Call Benchmark_chg(cr, cc)
    '第7表  1変更時
    ElseIf ((Target.row >= 175 And Target.row <= 204) And (Target.column = 3)) Then
        Call LenChk(175, 204, cr, cc)
    ' V4.0 ACEL
    '第7表  3変更時
    ElseIf ((Target.row >= 561 And Target.row <= 590) And (Target.column = 3)) Then
        Call LenChk(561, 590, cr, cc)
    '第9表 1変更時
    ElseIf ((Target.row >= 649 And Target.row <= 678) And (Target.column = 3)) Then
        Call LenChk(649, 678, cr, cc)
    '第9表 2変更時
    ElseIf ((Target.row >= 682 And Target.row <= 711) And (Target.column = 3)) Then
        Call LenChk(682, 711, cr, cc)
    'V4.0 ACEL
    '第10表 指定区分の変更続きが必要変更時
    ElseIf ((Target.row >= 1015 And Target.row <= 1851) And (Target.column = 2)) Then
        Call ShiteiKubun_chg(cr, cc)
    '第12表 5変更時
    ElseIf ((Target.row >= 2624 And Target.row <= 2653) And (Target.column = 2)) Then
        Call LenChk(2624, 2653, cr, cc)
    End If

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub
'V4.0 ACEL
Private Sub ShiteiKubun_chg(row As Integer, column As Integer)
    If Cells(row, column).Value = "( 指定区分の変更手続きが必要 ■ )" Then
        Cells(row + 1, 63).Value = "TRUE"
    Else
        Cells(row + 1, 63).Value = "FALSE"
    End If
End Sub

Private Sub Benchmark_chg(cr As Integer, cc As Integer)

If cc = 2 Then
  Select Case Cells(cr, cc).Value
    
    Case "1A"
        Cells(cr, cc + 3).Value = "高炉による製鉄業"
    
    Case "1B"
        Cells(cr, cc + 3).Value = "電炉による普通鋼製造業"
    
    Case "1C"
        Cells(cr, cc + 3).Value = "電炉による特殊鋼製造業"
  
    Case "2"
        Cells(cr, cc + 3).Value = "電力供給業"
    
    Case "3"
        Cells(cr, cc + 3).Value = "セメント製造業"
    
    Case "4A"
        Cells(cr, cc + 3).Value = "洋紙製造業"
    
    Case "4B"
        Cells(cr, cc + 3).Value = "板紙製造業"

    Case "5"
        Cells(cr, cc + 3).Value = "石油精製業"
    
    Case "6A"
        Cells(cr, cc + 3).Value = "石油化学系基礎製品製造業"
    
    Case "6B"
        Cells(cr, cc + 3).Value = "ソーダ工業"
    'V4.0 ACEL
    Case "7"
        Cells(cr, cc + 3).Value = "コンビニエンスストア業"
    'V5.0 ACEL
    Case "8"
        Cells(cr, cc + 3).Value = "ホテル業"
    'V5.0 ACEL
    Case "9"
        Cells(cr, cc + 3).Value = "百貨店業"

    Case Else
        Cells(cr, cc + 3).Value = ""

  End Select

ElseIf cc = 5 Then

  Select Case Cells(cr, cc).Value
    
    Case "高炉による製鉄業"
        Cells(cr, cc - 3).Value = "1A"
    
    Case "電炉による普通鋼製造業"
        Cells(cr, cc - 3).Value = "1B"
    
    Case "電炉による特殊鋼製造業"
        Cells(cr, cc - 3).Value = "1C"
  
    Case "電力供給業"
        Cells(cr, cc - 3).Value = "2"
    
    Case "セメント製造業"
        Cells(cr, cc - 3).Value = "3"
    
    Case "洋紙製造業"
        Cells(cr, cc - 3).Value = "4A"
    
    Case "板紙製造業"
        Cells(cr, cc - 3).Value = "4B"

    Case "石油精製業"
        Cells(cr, cc - 3).Value = "5"
    
    Case "石油化学系基礎製品製造業"
        Cells(cr, cc - 3).Value = "6A"
    
    Case "ソーダ工業"
        Cells(cr, cc - 3).Value = "6B"
    'V4.0 ACEL
    Case "コンビニエンスストア業"
        Cells(cr, cc - 3).Value = "7"
    'V5.0 ACEL
    Case "ホテル業"
        Cells(cr, cc - 3).Value = "8"
    'V5.0 ACEL
    Case "百貨店業"
        Cells(cr, cc - 3).Value = "9"

    Case Else
        Cells(cr, cc - 3).Value = ""

  End Select


End If


End Sub
Private Sub LenChk(sr As Integer, er As Integer, cr As Integer, cc As Integer)

    Dim dcnt As Integer
    Dim ccnt As Integer
    Dim lcnt As Integer
    Dim ar As Integer
    Dim strb As String

    lcnt = 0
    ccnt = 0

    '表示されている行の文字数をカウント
    For ar = sr To er
      If Rows(ar).Hidden = False Then
        lcnt = lcnt + 1
        ccnt = ccnt + Len(Rows(ar).Columns(cc))
      Else
        Exit For
      End If
    Next
    
    '最終行以外に付加する"\n"の分を加算
    ccnt = ccnt + ((lcnt - 1) * 2)
    
'    '1,600文字を超えていたらメッセージ表示
    If ccnt > 1600 Then
        If MsgBox("1600文字以内で入力して下さい。", vbOKOnly) = vbOK Then
            dcnt = ccnt - 1600
            If dcnt > Len(Rows(cr).Columns(cc)) Then
                Rows(cr).Columns(cc).Value = ""
            Else
                strb = Left(Rows(cr).Columns(cc).Value, Len(Rows(cr).Columns(cc)) - dcnt)
                Rows(cr).Columns(cc).Value = strb
            End If
            Rows(cr).Columns(cc).Select
        End If
    End If

End Sub

Attribute VB_Name = "Sheet5"
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
Attribute VB_Control = "CheckBox1, 9, 0, MSForms, CheckBox"

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

Attribute VB_Name = "Sheet6"
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

Attribute VB_Name = "Module1"
Sub 代理報告ボタン_Click()

'
'代理報告者 表示/非表示切替
'

  Application.ScreenUpdating = False
  
  If Rows(23).Hidden = True Then
      Rows(23).Hidden = False
      Rows(24).Hidden = False
      Range("AK23").Value = Range("BL23").Value
      Range("AK24").Value = Range("BL24").Value
      Range("AK23").Select
      ActiveSheet.Shapes("ボタン 代理").Select
      Selection.Characters.Text = "本人提出"
      Range("AK23").Select
      ActiveSheet.Shapes("角丸四角形吹き出し 2").Visible = True
      
  Else
      Range("BL23").Value = Range("AK23").Value
      Range("BL24").Value = Range("AK24").Value
      Range("AK23").Value = ""
      Range("AK24").Value = ""
      Rows(23).Hidden = True
      Rows(24).Hidden = True
      ActiveSheet.Shapes("ボタン 代理").Select
      Selection.Characters.Text = "代理提出"
      Range("AK21").Select
      ActiveSheet.Shapes("角丸四角形吹き出し 2").Visible = False
  End If

  Application.ScreenUpdating = True

End Sub
Sub 未選任ボタン_Click()

'
'エネルギー管理者 選任/未選任切替
'

  Dim s1
  Dim s1name, s1_addr, s1_top
  Dim s2name
  Dim rr
  Dim obj As Object
  Dim nm   As String
  Dim nmr7 As String
  Dim bcnt
    
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  
    '「未選任」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
 
  bcnt = (rr + 9 - 50) / 9
 
  If Range("T" & rr + 1).Value = "選任中" Then
      Range("T" & rr + 1).Value = Range("BL" & rr + 1).Value
      nm = Range("W" & rr - 1).Value
      nmr7 = Right(nm, 7)
      If nmr7 = "(作成実務者)" Then
          Range("W" & rr - 1).Value = Left(nm, Len(nm) - 7)
      End If
      ActiveSheet.Shapes("ボタン 選任" & bcnt).Select
      Selection.Characters.Text = "未選任"
      Range("T" & rr + 1).Select
  Else
      Range("BL" & rr + 1).Value = Range("T" & rr + 1).Value
      Range("T" & rr + 1).Value = "選任中"
      nm = Range("W" & rr - 1).Value
      nmr7 = Right(nm, 7)
      If nmr7 = "(作成実務者)" Then
      Else
          Range("W" & rr - 1).Value = nm & "(作成実務者)"
      End If
      ActiveSheet.Shapes("ボタン 選任" & bcnt).Select
      Selection.Characters.Text = "選任済"
      Range("Y" & rr + 2).Select
  End If
  
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  
End Sub
Sub 同じボタン_Click()
    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim s2name
    Dim rr
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「同じ」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
 
    If Range("V34").Value = "" And Range("T35").Value = "" Then
      If MsgBox("主たる事務所の所在地が入力されていません。", vbOKOnly) = vbOK Then
        Exit Sub
      End If
    End If
      
    Range("Y" & rr).Value = Range("V34").Value
    Range("T" & rr + 1).Value = Range("T35").Value
  
    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub


Attribute VB_Name = "Module2"
Sub ボタン表3_Click()

    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim s2name
    Dim lch
    Dim cno
    Dim rr
    Dim ar
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「+」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
    
    '次の3件を表示
    For ar = (rr + 1) To (rr + 9)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    
    '特定3表 1のとき、特定3表 2も連動させる
    If Left(s1name, 7) = "ボタン表3_1" Then
    For ar = (rr + 382) To (rr + 390)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    End If
    
    'ボタン表示制御
    ActiveSheet.Shapes(s1name).Visible = False
    
    lch = Left(s1name, Len(s1name) - 3)
    cno = Right(s1name, 3)
    
    If cno > 101 Then
        s2name = lch & cno - 1 & "D"
        ActiveSheet.Shapes(s2name).Visible = False
    End If
    
    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub
Sub ボタン表579_Click()

    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim s2name
    Dim lch
    Dim cno
    Dim rr
    Dim ar
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「+」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
    
    '次の10行を表示
    For ar = (rr + 1) To (rr + 10)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    
    'ボタン表示制御
    ActiveSheet.Shapes(s1name).Visible = False
    
    lch = Left(s1name, Len(s1name) - 1)
    cno = Right(s1name, 1)
    
    If cno > 1 Then
        s2name = lch & cno - 1 & "D"
        ActiveSheet.Shapes(s2name).Visible = False
    End If
    
    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub
Sub ボタン表11_Click()

    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim rr
    Dim ar
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「+」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
    
    '次の5件を表示
    For ar = (rr + 1) To (rr + 15)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    
    'ボタン表示制御
    ActiveSheet.Shapes(s1name).Visible = False
    
    Select Case (s1name)
    
    Case "ボタン表11_2"
        ActiveSheet.Shapes("ボタン表11_1D").Visible = False
       
    Case "ボタン表11_3"
        ActiveSheet.Shapes("ボタン表11_2D").Visible = False
       
    Case "ボタン表11_4"
        ActiveSheet.Shapes("ボタン表11_3D").Visible = False
    
    End Select

    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub
Sub ボタン表12行追加_Click()

    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim s2name
    Dim lch
    Dim cno
    Dim rr
    Dim ar
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「+」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
    
    '次の5件を表示
    For ar = (rr + 1) To (rr + 5)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    
    'ボタン表示制御
    ActiveSheet.Shapes(s1name).Visible = False
    
    lch = Left(s1name, Len(s1name) - 2)
    cno = Right(s1name, 2)
    
    If (cno > 11 And cno < 20) Or _
       (cno > 21 And cno < 30) Or _
       (cno > 31 And cno < 40) Or _
       (cno > 41 And cno < 50) Then
        s2name = lch & cno - 1 & "D"
        ActiveSheet.Shapes(s2name).Visible = False
    End If
    
    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub
Sub ボタン表12表追加_Click()

    Dim s1
    Dim s1name, s1_addr, s1_top
    Dim rr
    Dim ar
    Dim obj As Object
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '「+」ボタンの位置情報を取得
    Set obj = ActiveSheet.DrawingObjects(Application.Caller)
    s1name = obj.Name
    
    Set s1 = ActiveSheet.Shapes(s1name)
    s1_addr = s1.TopLeftCell.Address
    
    Range(s1_addr).Select
    
    With Range(s1_addr).MergeArea
        rr = .Item(1).row
    End With
    
    '次の表を表示
    For ar = (rr + 1) To (rr + 13)
        ActiveSheet.Rows(ar).Hidden = False
    Next
    
    ActiveSheet.Rows(ar + 25).Hidden = False
    
    ActiveSheet.Shapes(s1name).Visible = False
    
    Select Case (s1name)
    
    'ボタン表示制御
    Case "ボタン表12_6_3_2"
        ActiveSheet.Shapes("ボタン表12_6_3_1D").Visible = False
       
    Case "ボタン表12_6_3_3"
        ActiveSheet.Shapes("ボタン表12_6_3_2D").Visible = False
…
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 470016 bytes
SHA-256: 9ad43d368c636d8eca77127671bb17be82545cae119ec43efc486d63f9e58c62
emf_00.emf ooxml-emf OOXML EMF part: xl/media/image19.emf 2400 bytes
SHA-256: 180b415af0b69aebdeef610275a129a07f79fa107c7df117104e271e990ddb52
emf_01.emf ooxml-emf OOXML EMF part: xl/media/image18.emf 2388 bytes
SHA-256: 9bd05ca10751a569b968dfd3a990c2b32b3a2403ef819438071c1ecf47142a69
emf_02.emf ooxml-emf OOXML EMF part: xl/media/image17.emf 2412 bytes
SHA-256: 7a74a87387d405405b0637244157caaec4e1d856f652502522f2c33730610b19
emf_03.emf ooxml-emf OOXML EMF part: xl/media/image16.emf 2400 bytes
SHA-256: 4b151d184fa18336d11f843d0199d454e4180b64db5afb292841d17df32ace76
emf_04.emf ooxml-emf OOXML EMF part: xl/media/image20.emf 2412 bytes
SHA-256: 3a264e0ccd5646b5342f7b21b2364399468a2fa3e69630f7410bfab24ff999a9
emf_05.emf ooxml-emf OOXML EMF part: xl/media/image21.emf 2388 bytes
SHA-256: 216ac46c53668837916ff7f283fbd5c5fc6c150033d00b647d583ba015858320
emf_06.emf ooxml-emf OOXML EMF part: xl/media/image22.emf 2400 bytes
SHA-256: db3b96cef84596ad34b8a55742db82602b2eb437eff3588342945a0cfc53421d
emf_07.emf ooxml-emf OOXML EMF part: xl/media/image26.emf 2388 bytes
SHA-256: db40ca7c66e2a7d27154331302b6bed37a1463ac2643f41fdd08f5beed403453
emf_08.emf ooxml-emf OOXML EMF part: xl/media/image25.emf 2400 bytes
SHA-256: 9a26df9714b30655c17bc2d29c70e3859b46f74a4e8b9af3ecea994e002626b9
emf_09.emf ooxml-emf OOXML EMF part: xl/media/image24.emf 2388 bytes
SHA-256: 60af4fce5106c3de424237d78d5b171ce8a86e912c0a0f51178532059c1cc3c5
emf_10.emf ooxml-emf OOXML EMF part: xl/media/image23.emf 2412 bytes
SHA-256: 98e77ac3de27fbcd114d0234eb6ce11958f750c001b501ca54b9f81f08b5f54b
emf_11.emf ooxml-emf OOXML EMF part: xl/media/image15.emf 2388 bytes
SHA-256: ce3d65ea20cdf53e755325ea7b5c5be96ccc7a5f525c466573407ffa657cc197
emf_12.emf ooxml-emf OOXML EMF part: xl/media/image14.emf 2412 bytes
SHA-256: 4b2afc51a1f9e3311089499f1c2da82ef8707a5941aa66d37a578d78e2907ecc
emf_13.emf ooxml-emf OOXML EMF part: xl/media/image13.emf 2400 bytes
SHA-256: 533dbe61ac82f6e07bbaaec8c9cc0318cc0c188c41d0c0a26a18d5e4981d5d4d
emf_14.emf ooxml-emf OOXML EMF part: xl/media/image6.emf 2656 bytes
SHA-256: 555c5f981f672a70db5fa58fcd8ca93c8f27e24d31a5dea9d0e4e38e107fc2c8
emf_15.emf ooxml-emf OOXML EMF part: xl/media/image7.emf 2400 bytes
SHA-256: 153effd68dd37447dea289126cfcc2383d991466f425a33b1d026a2e5f4c46b8
emf_16.emf ooxml-emf OOXML EMF part: xl/media/image8.emf 2412 bytes
SHA-256: 0d2c61b8636b7133b1de109562b9b2a63e40b41bd4b0d896a43d10f58a64df90
emf_17.emf ooxml-emf OOXML EMF part: xl/media/image9.emf 2388 bytes
SHA-256: 71459bbb46d4597c9f7d48e276d5fbbfcc55ae43e22a57ff77ff9b121416d72d
emf_18.emf ooxml-emf OOXML EMF part: xl/media/image10.emf 2400 bytes
SHA-256: 65689f293200b822b9819fdbea7ef03f7ab4e198db7a253a41ee2a4914165026
emf_19.emf ooxml-emf OOXML EMF part: xl/media/image11.emf 2412 bytes
SHA-256: 23fa6e0e35dddf934b705170ca0bd8a3a2a44ba2e66cab7c30971e6e2136faa6
emf_20.emf ooxml-emf OOXML EMF part: xl/media/image12.emf 2388 bytes
SHA-256: 5435f0b9ddd1a52d8605bd218db34f1483a4cd045a9d7a57189f315f3e96fc2b
emf_21.emf ooxml-emf OOXML EMF part: xl/media/image27.emf 2400 bytes
SHA-256: 051fdfaff1c39fcfed0b6bdf90f4d3dd186faf99a9d00f8429a73a3851fbc775
emf_22.emf ooxml-emf OOXML EMF part: xl/media/image28.emf 2388 bytes
SHA-256: 9a46b364bbcac55309cfdaccd8199e0237df900f5cf423d5822b004c6676249a
emf_23.emf ooxml-emf OOXML EMF part: xl/media/image29.emf 2656 bytes
SHA-256: cfe8fc1c71cf773a3fad7ccaa66c7a72947fe38daef4030d1f7161b4776286a5
emf_24.emf ooxml-emf OOXML EMF part: xl/media/image33.emf 2448 bytes
SHA-256: e631ed738665de2f201ba1b16b4909164226191d41c49e53e53571ca3d48dee3
emf_25.emf ooxml-emf OOXML EMF part: xl/media/image32.emf 2400 bytes
SHA-256: 63b0ea7b453b44076464b1c145f9d028a1ba411babd781c5d8dc195191b6122c
emf_26.emf ooxml-emf OOXML EMF part: xl/media/image31.emf 2656 bytes
SHA-256: 3a6a47f51bf890489d664fbdf98ad994f8b1c19decb76b09f94fd726cd6308cc
emf_27.emf ooxml-emf OOXML EMF part: xl/media/image30.emf 2656 bytes
SHA-256: eb28e668c17eb8fcd35caec23b7c0b0a27bba143cf67cdbe676f0985e17edbfd
emf_28.emf ooxml-emf OOXML EMF part: xl/media/image34.emf 2412 bytes
SHA-256: 994d9c1ae25cf504efec3b476c0523f64c2ba7899ccb416ea77fdc569c6b87f9
emf_29.emf ooxml-emf OOXML EMF part: xl/media/image1.emf 2736 bytes
SHA-256: 3c576acc955e0cc09019c5a2451dd1e1ab8113680d736d4d53e72a62dce7ef34