Malicious Office (OOXML) / .XLSX — malware analysis report

Static analysis result for SHA-256 d14bfcee1c065247…

MALICIOUS

Office (OOXML) / .XLSX

957.0 KB Created: 2008-07-30 01:51:41 UTC Authoring application: Microsoft Excel 14.0300 First seen: 2026-06-06
MD5: c1048332d9bd090f33bd2b44bf639749 SHA-1: d0ef8bccb3ae71a17b92a7e13f0cae99f28036da SHA-256: d14bfcee1c065247aae530016eb63d5054a021d3b71c3a8913f4fc83c08c6d64
306 Risk Score

Heuristics 9

  • ClamAV: Xls.Malware.Logan-10010435-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Malware.Logan-10010435-0
  • VBA project inside OOXML medium 5 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
        Set wsh = CreateObject("WScript.Shell")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    Set args = CreateObject("Scripting.Dictionary")
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Triggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Private Sub Workbook_Open()
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
                    USER_PCNAME = Environ("COMPUTERNAME")
  • External hyperlinks (1) low OOXML_EXTERNAL_HYPERLINKS
    Document contains 1 external hyperlink — clickable URLs are stored as external relationships. First target: http://res.uitm.edu.my/excel/
  • 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://res.uitm.edu.my/excel/ Document hyperlink

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 248507 bytes
SHA-256: 108808c99555ac059c1897f32e78aecc190866063364338781210eb57a324f31
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
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox "The 'Save As' function has been disabled." & Chr(10) & "Only 'Save' will work.", vbInformation, "Save As Disabled"
Cancel = True
ThisWorkbook.Save
ThisWorkbook.Close
Application.Quit
End If
End Sub

Private Sub Workbook_Open()

Set args = CreateObject("Scripting.Dictionary")
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

Sheets("LE15").Visible = xlSheetVeryHidden
Sheets("parameter").Visible = xlSheetVeryHidden
Sheets("RAWSCORE").Visible = xlSheetVeryHidden
Sheets("login").Visible = xlSheetVeryHidden
Sheets("exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN rawscore").Visible = xlSheetVeryHidden
Sheets("KUARANTIN le15").Visible = xlSheetVeryHidden
Assessment.Visible = xlSheetVeryHidden
examination.Visible = xlSheetVeryHidden
PLODetail.Visible = xlSheetVeryHidden
PLOgrade.Visible = xlSheetVeryHidden


noOfAssessment = Sheet3.Cells(1, 13)
noOfExam = Sheet3.Cells(2, 13)
totalExamMark = Sheet3.Cells(3, 13)
'untuk autocalculate
Application.CalculateFullRebuild


Sheets("MENU").Activate
disblesaveas
'checkAllS
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

Sheets("LE15").Visible = xlSheetVeryHidden
Sheets("parameter").Visible = xlSheetVeryHidden
Sheets("RAWSCORE").Visible = xlSheetVeryHidden
Sheets("exam").Visible = xlSheetVeryHidden
Sheets("login").Visible = xlSheetVeryHidden
Sheets("KUARANTIN exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN rawscore").Visible = xlSheetVeryHidden
Sheets("KUARANTIN le15").Visible = xlSheetVeryHidden
Assessment.Visible = xlSheetVeryHidden
examination.Visible = xlSheetVeryHidden
PLODetail.Visible = xlSheetVeryHidden
PLOgrade.Visible = xlSheetVeryHidden

enablesave

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
Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Column = 12 Then
'    Sheets("LE15").Unprotect Password:="abc010203"
'    Sheets("LE15").Cells(Target.row, 19) = staffId
'    Sheets("LE15").Protect Password:="abc010203"
'End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Attribute VB_Name = "Utama"
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 = "frmLoadList"
Attribute VB_Base = "0{A1962470-AE6F-467F-AB4D-548128F3FF95}{4C82ED14-75FF-4F9D-8C9C-FF63D5FB424E}"
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()

If Sheets("parameter").Cells(23, 3) = 1 Then
    Retv
    Exit Sub
End If

Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim ttt As Long
Dim namapelajar As String

Sheets("LE15").Unprotect Password:="abc010203"
Sheets("rawscore").Unprotect Password:="abc010203"
Sheets("exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN le15").Unprotect Password:="abc010203"
Assessment.Unprotect Password:="abc010203"
examination.Unprotect Password:="abc010203"
PLODetail.Unprotect Password:="abc010203"
PLOgrade.Unprotect Password:="abc010203"



RowShow 1, 1994, True
Sheets("menu").Activate

txtkursus = UCase(txtkursus)
    
Pro.Caption = "Process - Load course parameter"
DoEvents

Pro.Caption = "Process - setting course parameter"
DoEvents
url = Sheets("parameter").Cells(18, 3) + "kursus.asp"
args.RemoveAll
args.Add "kursus", txtkursus
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Error, no course found"
    Sheets("rawscore").Protect Password:="abc010203"
    Sheets("exam").Protect Password:="abc010203"
    Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
    Sheets("KUARANTIN exam").Protect Password:="abc010203"
    Sheets("LE15").Protect Password:="abc010203"
    Assessment.Protect Password:="abc010203"
    examination.Protect Password:="abc010203"
    PLODetail.Protect Password:="abc010203"
PLOgrade.Protect Password:="abc010203"
    Exit Sub
Else

    
    Sheets("parameter").Unprotect Password:="abc010203"
    Sheets("LE15").Cells(7, 11) = DATA1(0, 0) 'jam kredit
    Sheets("parameter").Cells(8, 3) = DATA1(0, 1) 'kod kursus
    
    If DATA1(0, 2) = Null Or DATA1(0, 2) = "" Then
        Sheets("parameter").Cells(2, 3) = "T"
    Else
        Sheets("parameter").Cells(2, 3) = UCase(DATA1(0, 2))
    End If
    If DATA1(0, 3) = Null Or DATA1(0, 3) = "" Then
        Sheets("parameter").Cells(3, 3) = "N"
    Else
        Sheets("parameter").Cells(3, 3) = UCase(DATA1(0, 3))
    End If
    Sheets("parameter").Protect Password:="abc010203"

End If



Sheets("parameter").Unprotect Password:="abc010203"
url = Sheets("parameter").Cells(18, 3) + "getparam.asp"
Set args = Nothing
Set args = CreateObject("Scripting.Dictionary")
args.RemoveAll
args.Add "queryId", 1
toArray1 HttpQuery(url, args), DATA1
DoEvents
For k = 0 To UBound(DATA1, 1) - 1
    If DATA1(k, 0) = "sesiL A" Then
        sesiL = DATA1(k, 1)
        Sheets("parameter").Cells(14, 3) = sesiL
    ElseIf DATA1(k, 0) = "semesterL A" Then
        semesterL = DATA1(k, 1)
        Sheets("parameter").Cells(13, 3) = semesterL
    ElseIf DATA1(k, 0) = "semester A" Then
        currSemester = DATA1(k, 1)
        Sheets("parameter").Cells(12, 3) = currSemester
    End If
Next





Dim moduleid As Long
Dim assesscontentID As Long

DoEvents
url = Sheets("parameter").Cells(18, 3) + "getLatestActiveModule.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
toArray1 HttpQuery(url, args), DATA1
If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "No active module data, Pls contact Resource Person to update according to Constructive Alignment in AIMS"
    Assessment.Range(Assessment.Columns(8), Assessment.Columns(63)).Hidden = True
    Exit Sub
End If
moduleid = DATA1(0, 0)


'get pembahagian markah
DoEvents
url = Sheets("parameter").Cells(18, 3) + "assessmentcategories2.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
args.Add "moduleid", moduleid
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Assessment data not found: Pls contact Resource Person to update according to Constructive Alignment in AIMS - process aborted"
    Exit Sub
Else
For k = 0 To UBound(DATA1, 1) - 1
    If DATA1(k, 0) = "22" Then
        Utama.Cells(16, 7) = DATA1(k, 1)
    ElseIf DATA1(k, 0) = "23" Then
        Utama.Cells(17, 7) = DATA1(k, 1)
    End If
Next
End If


'get detail assessment
Dim PLO(1 To 15) As Integer, pointerPLO As Integer
Dim pointerPLOExam As Integer
pointerPLO = 1
pointerPLOExam = 1








DoEvents
url = Sheets("parameter").Cells(18, 3) + "detailassessmentV2.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
args.Add "moduleid", moduleid
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Assessment not found: Pls contact Resource Person to update according to Constructive Alignment in AIMS - process aborted"
    Assessment.Range(Assessment.Columns(8), Assessment.Columns(63)).Hidden = True
    Exit Sub
Else
Assessment.Range(Assessment.Columns(8), Assessment.Columns(63)).Hidden = True
Assessment.Range(Assessment.Columns(8), Assessment.Columns(8 + UBound(DATA1, 1) - 1)).Hidden = False
noOfAssessment = UBound(DATA1, 1) - 1

totalAssignmentMark = 0
For k = 0 To UBound(DATA1, 1) - 1
    Assessment.Cells(16, 8 + k) = DATA1(k, 0)
    Assessment.Cells(17, 8 + k) = "CLO" & DATA1(k, 3)
    Assessment.Cells(18, 8 + k) = "PLO" & DATA1(k, 4)
'    If k = 0 Then
'        Sheet3.Cells(pointerPLO, 8) = "PLO" & DATA1(k, 4)
'        Sheet3.Cells(pointerPLO, 10) = DATA1(k, 4)
'        PLO(DATA1(k, 4)) = 99
'        pointerPLO = pointerPLO + 1
'    Else
'        If PLO(DATA1(k, 4)) <> 99 Then
'        Sheet3.Cells(pointerPLO, 8) = "PLO" & DATA1(k, 4)
'        Sheet3.Cells(pointerPLO, 10) = DATA1(k, 4)
'        PLO(DATA1(k, 4)) = 99
'        pointerPLO = pointerPLO + 1
'        End If
'    End If
    
    Assessment.Cells(13, 8 + k) = DATA1(k, 1)
    totalAssignmentMark = totalAssignmentMark + DATA1(k, 1)
    Assessment.Cells(15, 8 + k) = DATA1(k, 2)
    If DATA1(k, 2) = 0 Then
        MsgBox "Warning, fullmark cannot be 0, please consult RP - process terminated", vbCritical + vbOKOnly, "WARNING"
    Exit Sub
    End If
Next
    If totalAssignmentMark <> Utama.Cells(16, 7) Then
        MsgBox "WARNING, total mark for assignment (in detail) does not match with total mark for assignment; " & Str(totalAssignmentMark) & "/" & Str(Utama.Cells(16, 7)) & vbLf & "Maybe because of not 1 to 1 mapping of knowlegde outcome", vbCritical + vbOKOnly
    End If
    
            pointerPLO = 1
            DoEvents
            url = Sheets("parameter").Cells(18, 3) + "getplo.asp"
            args.RemoveAll
            args.Add "kursus", Sheets("parameter").Cells(8, 3)
            args.Add "moduleid", moduleid
            toArray1 HttpQuery(url, args), DATA1
            
            If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
                MsgBox "Assessment not found: Pls contact Resource Person to update according to Constructive Alignment in AIMS"
            Else
                For k = 0 To UBound(DATA1, 1) - 1
                    If k = 0 Then
                        Sheet3.Cells(pointerPLO, 8) = "PLO" & DATA1(k, 0)
                        Sheet3.Cells(pointerPLO, 10) = DATA1(k, 0)
                        PLO(DATA1(k, 0)) = 99
                        pointerPLO = pointerPLO + 1
                        
                        'If DATA1(k, 0) = 1 Or DATA1(k, 0) = 3 Then
                            Sheet3.Cells(pointerPLOExam, 12) = "PLO" & DATA1(k, 0)
                            pointerPLOExam = pointerPLOExam + 1
                        'End If
                    Else
                        If PLO(DATA1(k, 0)) <> 99 Then
                            Sheet3.Cells(pointerPLO, 8) = "PLO" & DATA1(k, 0)
                            Sheet3.Cells(pointerPLO, 10) = DATA1(k, 0)
                            PLO(DATA1(k, 0)) = 99
                            pointerPLO = pointerPLO + 1
                            'If DATA1(k, 0) = 1 Or DATA1(k, 0) = 3 Then
                                Sheet3.Cells(pointerPLOExam, 12) = "PLO" & DATA1(k, 0)
                                pointerPLOExam = pointerPLOExam + 1
                            'End If
                        End If
                    End If
                Next
            End If



pointerPLOExam = pointerPLOExam - 1
pointerPLO = pointerPLO - 1
Dim listplo As Range
Dim listplostr As String
Dim ce As String

If pointerPLOExam > 1 Then
    listplostr = "=parameter!R1C12:R" & pointerPLOExam & "C12"
    For k = 8 To 162
        ce = Cells(18, k).Address(RowAbsolute:=False, ColumnAbsolute:=False)
        'ce = Chr(64 + k) & "18"
        With examination.Range(ce).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, formula1:=listplostr
        
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
        End With
    Next k
ElseIf pointerPLOExam = 1 Then
    For k = 8 To 162
        examination.Cells(18, k) = "=parameter!R1C12"
    Next k
End If


'hide all plo except used plo
Dim l As Integer
Dim rowww
For l = 1 To pointerPLO
    rowww = Right(Sheet3.Cells(l, 8), 1)
    PLODetail.Range(PLODetail.Columns(rowww + 7), PLODetail.Columns(rowww + 7)).Hidden = False
    PLODetail.Range(PLODetail.Columns(rowww + 169), PLODetail.Columns(rowww + 169)).Hidden = False
    PLODetail.Range(PLODetail.Columns(rowww + 188), PLODetail.Columns(rowww + 188)).Hidden = False
    PLODetail.Range(PLODetail.Columns(rowww + 147), PLODetail.Columns(rowww + 147)).Hidden = False
    PLODetail.Range(PLODetail.Columns(rowww + 199), PLODetail.Columns(rowww + 199)).Hidden = False
    PLOgrade.Range(PLOgrade.Columns(rowww * 3 + 9), PLOgrade.Columns(rowww * 3 + 11)).Hidden = False
    
Next

End If

'formula untuk assessment
Dim formulastr As String
'For l = 0 To 20
'    formulastr = "="
'    For k = 0 To noOfAssessment
'    formulastr = formulastr & "RC[" & Trim(Str(-57 + k)) & "]/R[" & Trim(Str(-4 - l)) & "]C[" & Trim(Str(-57 + k)) & "]*R[" & Trim(Str(-6 - l)) & "]C[" & Trim(Str(-57 + k)) & "] +"
'    Next
'    formulastr = Left(formulastr, Len(formulastr) - 1)
'    Assessment.Cells(19 + l, 65) = formulastr
'Next


DoEvents
url = Sheets("parameter").Cells(18, 3) + "JSUcontentLatest.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
args.Add "moduleid", moduleid
toArray1 HttpQuery(url, args), DATA1
If UCase(Trim(DATA1(0, 0))) <> "" Then
    assesscontentID = DATA1(0, 0)
Else
    assesscontentID = 0
End If

DoEvents
url = Sheets("parameter").Cells(18, 3) + "JSUTotalMark.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
args.Add "moduleid", moduleid
args.Add "assesscontentID", assesscontentID
toArray1 HttpQuery(url, args), DATA1
If UCase(Trim(DATA1(0, 0))) <> "" Then
    totalExamMark = DATA1(0, 0)
    PLODetail.Cells(10, 159) = "Final exam full mark in the system : " & Trim(Str(totalExamMark))
Else
    totalExamMark = 0
End If



DoEvents
url = Sheets("parameter").Cells(18, 3) + "DetailJSU.asp"
args.RemoveAll
args.Add "kursus", Sheets("parameter").Cells(8, 3)
args.Add "assesscontentID", assesscontentID
args.Add "moduleid", moduleid
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "No final exam data: Pls contact Resource Person to update according to Constructive Alignment in AIMS (if necessary)"
    examination.Range(examination.Columns(8), examination.Columns(162)).Hidden = True
Else
noOfExam = UBound(DATA1, 1) - 1
For k = 0 To UBound(DATA1, 1) - 1
    examination.Cells(13, 8 + k) = DATA1(k, 0)
    examination.Cells(14, 8 + k) = DATA1(k, 1)
    examination.Cells(15, 8 + k) = DATA1(k, 2)
    examination.Cells(16, 8 + k) = DATA1(k, 3)
Next

End If
examination.Range(examination.Columns(k + 8), examination.Columns(162)).Hidden = True


''For k = 189 To 196
''    PLODetail.Cells(15, k) = "=RC[-19]*MENU!R17C7/" & Trim(Str(totalExamMark)) & " + 'PLO Detail'!RC[-181]"
''Next

Sheet3.Cells(1, 13) = noOfAssessment
Sheet3.Cells(2, 13) = noOfExam
Sheet3.Cells(3, 13) = totalExamMark


Sheets("parameter").Protect Password:="abc010203"

'GoTo exittesting 'testing purposes


Pro.Caption = "Process - Load student list"
DoEvents



url = Sheets("parameter").Cells(18, 3) + "synData.asp"
args.RemoveAll
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "kampusID", (arrayKampus(cKampus.ListIndex).kampusID)
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "transactType", "download list"
args.Add "semester", Sheets("parameter").Cells(12, 3)

toArray1 HttpQuery(url, args), DATA1


If Trim(DATA1(0, 1)) = "1" Then
    MsgBox DATA1(1, 1)
    Exit Sub
End If


If Trim(DATA1(0, 1)) = "2" Then
    MsgBox DATA1(1, 1)
End If




url = Sheets("parameter").Cells(18, 3) + "studentlistDiploma.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "semester", Sheets("parameter").Cells(12, 3)

toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)
pages = jumRekod / 26

Pro.Caption = "Process - Transfering list student"
DoEvents
If DATA1(0, 0) <> "no data" Then
    

    
    ReDim arrayMarkah(jumRekod)
    For county = 0 To UBound(DATA1, 1) - 1
        arrayMarkah(county).akdfakid = DATA1(county, 6)
        arrayMarkah(county).akdRkdIdPengajian = DATA1(county, 8)
        arrayMarkah(county).krskodkursus = DATA1(county, 7)
        arrayMarkah(county).pelNamaPelajar = DATA1(county, 2)
        arrayMarkah(county).pelNoKP = DATA1(county, 1)
        arrayMarkah(county).pelNoPelajar = DATA1(county, 0)
        arrayMarkah(county).pgdGred = ""
        arrayMarkah(county).pgdID = DATA1(county, 10)
        arrayMarkah(county).pgdKumpulan = DATA1(county, 9)
        arrayMarkah(county).pgdMrkhPurata = DATA1(county, 11)
        arrayMarkah(county).pgpBahagian = DATA1(county, 5)
        arrayMarkah(county).pgpKmpID = DATA1(county, 3)
        arrayMarkah(county).pgpPrgID = DATA1(county, 4)
        arrayMarkah(county).tl = DATA1(county, 18)
        arrayMarkah(county).audit = DATA1(county, 19)
        arrayMarkah(county).program = DATA1(county, 4)
        arrayMarkah(county).mode1 = DATA1(county, 8)
    Next county


Pro.Caption = "Process - formatting list/formula"
DoEvents
Sheets("parameter").Unprotect Password:="abc010203"

Sheets("LE15").Cells(6, 5) = arrayKampus(cKampus.ListIndex).kampusCode + "-" + arrayKampus(cKampus.ListIndex).kampusName
If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
    Sheets("LE15").Cells(7, 5) = arrayFakulti(cFakulti.ListIndex).fakultiCode + "-" + arrayFakulti(cFakulti.ListIndex).fakultiName
    Sheets("parameter").Cells(9, 3) = arrayFakulti(cFakulti.ListIndex).fakultiID
Else
    Sheets("parameter").Cells(9, 3) = "-1"
End If

Sheets("LE15").Cells(10, 5) = Sheets("parameter").Cells(14, 3)
Sheets("LE15").Cells(6, 11) = arrayMarkah(0).krskodkursus
Sheets("LE15").Cells(8, 11) = arrayMarkah(0).pgdKumpulan
Sheets("parameter").Cells(5, 3) = arrayKampus(cKampus.ListIndex).kampusID
Sheets("parameter").Cells(6, 3) = arrayKampus(cKampus.ListIndex).kampusName
Sheets("parameter").Cells(7, 3) = Trim(arrayMarkah(0).pgdKumpulan)
Sheets("parameter").Cells(8, 3) = Trim(arrayMarkah(0).krskodkursus)

Sheets("parameter").Protect Password:="abc010203"

Sheets("LE15").Cells(9, 11) = Sheets("parameter").Cells(13, 3)
Application.EnableEvents = False

k = 13
While Sheets("le15").Cells(k, 2) <> ""
    k = k + 1
Wend


Application.Calculation = xlCalculationManual
For a = 13 To k + 5
    Sheets("LE15").Cells(a, 1) = vbNullString
    Sheets("LE15").Cells(a, 2) = vbNullString
    Sheets("LE15").Cells(a, 3) = vbNullString
    Sheets("LE15").Cells(a, 5) = vbNullString
    Sheets("LE15").Cells(a, 6) = vbNullString
    Sheets("LE15").Cells(a, 7) = vbNullString
    Sheets("LE15").Cells(a, 12) = vbNullString
    Sheets("LE15").Cells(a, 13) = vbNullString
    Sheets("exam").Cells(a, 2) = vbNullString
    Sheets("exam").Cells(a, 1) = vbNullString
    Sheets("exam").Cells(a, 3) = vbNullString
    Sheets("exam").Cells(a, 59) = vbNullString
    Sheets("exam").Cells(a, 60) = vbNullString
    Sheets("rawscore").Cells(a + 6, 2) = vbNullString
    Sheets("rawscore").Cells(a + 6, 1) = vbNullString
Next a


For a = 13 To 13 + county - 1
    Pro.Caption = "Process - formatting list/formula " + Trim(Str(a - 12)) + "/" + Trim(Str(county))
    DoEvents
    
    namapelajar = arrayMarkah(a - 13).pelNamaPelajar
    If Left(namapelajar, 1) = "'" Then
        namapelajar = "'" + namapelajar
    End If
    
    Sheets("LE15").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("LE15").Cells(a, 2) = a - 12
    Sheets("LE15").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("LE15").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("LE15").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("LE15").Cells(a, 7) = namapelajar
    Sheets("LE15").Cells(a, 12) = "=tranferKeTemplate('PLO Detail'!R[6]C[186],RC23)"
    Sheets("LE15").Cells(a, 13) = "=KIRAGRED(RC[-1],RC[4],RC[7],RC[10])"
    Sheets("LE15").Cells(a, 14) = "=kiraGredmata(RC[-2],RC[3],RC[4],RC[9])"
    Sheets("LE15").Cells(a, 17) = arrayMarkah(a - 13).tl
    Sheets("LE15").Cells(a, 18) = arrayMarkah(a - 13).audit
    'sheets("LE15").Cells(a, 19) = "=keyin1()"
    Sheets("LE15").Cells(a, 20) = arrayMarkah(a - 13).program
    Sheets("LE15").Cells(a, 21) = arrayMarkah(a - 13).mode1
    Sheets("LE15").Cells(a, 22) = "=KIRALULUSGAGAL(RC[-10],RC[-9],RC23)"
    
    
    Sheets("PLO grade").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("PLO grade").Cells(a, 2) = a - 12
    Sheets("PLO grade").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("PLO grade").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("PLO grade").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("PLO grade").Cells(a, 7) = namapelajar
    
    PLOgrade.Cells(a, 12) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[177],'PLO Detail'!R[6]C[188],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 13) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 14) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"

    PLOgrade.Cells(a, 15) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[175],'PLO Detail'!R[6]C[186],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 16) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 17) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 18) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[173],'PLO Detail'!R[6]C[184],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 19) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 20) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 21) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[171],'PLO Detail'!R[6]C[182],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 22) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 23) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 24) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[169],'PLO Detail'!R[6]C[180],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 25) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 26) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 27) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[167],'PLO Detail'!R[6]C[178],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 28) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 29) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 30) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[165],'PLO Detail'!R[6]C[176],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 31) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 32) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 33) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[163],'PLO Detail'!R[6]C[174],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 34) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 35) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    PLOgrade.Cells(a, 36) = "=tranferKeTemplateNEW('PLO Detail'!R[6]C[161],'PLO Detail'!R[6]C[172],'PLO Detail'!R[6]C209,LE15!RC23)"
    PLOgrade.Cells(a, 37) = "=KIRAGRED(RC[-1],LE15!RC17,LE15!RC20,LE15!RC23)"
    PLOgrade.Cells(a, 38) = "=kiraGredmata(RC[-2],LE15!RC17,LE15!RC20,LE15!RC23)"
    
    
'    Sheets("exam").Cells(a, 3) = namapelajar
'    Sheets("exam").Cells(a, 59) = "=checkexamtotal(RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39],RC[-38],RC[-37])"
'    Sheets("exam").Cells(a, 60) = "=KIRATESTDOUBLE(RC[-1])"
'    Sheets("exam").Cells(a, 1) = a - 12
'    Sheets("exam").Cells(a, 2) = arrayMarkah(a - 13).pelNoPelajar
    
    examination.Cells(a + 6, 1) = a - 12
    examination.Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    examination.Cells(a + 6, 3) = namapelajar
    
    Assessment.Cells(a + 6, 1) = a - 12
    Assessment.Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    Assessment.Cells(a + 6, 3) = namapelajar
    
    PLODetail.Cells(a + 6, 1) = a - 12
    PLODetail.Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    PLODetail.Cells(a + 6, 3) = namapelajar
    
    For ttt = 8 To 16
    PLODetail.Cells(a + 6, ttt + 192) = "=sum2String(R15C[-192],RC[-52])"
    PLODetail.Cells(a + 6, ttt) = "=kiraPLO(R18C,'Continuous Assessment'!R18C8:R18C63,'Continuous Assessment'!RC8:RC63,'Continuous Assessment'!R15C8:R15C63,'Continuous Assessment'!R13C8:R13C63)"
    PLODetail.Cells(a + 6, ttt + 162) = "=kiraPLO(R18C,examination!R18C8:R18C162,examination!RC8:RC162,examination!R13C8:R13C162,examination!R13C8:R13C162)"
    PLODetail.Cells(a + 6, ttt + 181) = "=kiraFinalPLO(R18C,R18C[-19],RC[-181],RC[-19],R15C[-19])"
    PLODetail.Cells(a + 6, ttt + 140) = "=kiratotalMarkExam(R18C,examination!R18C8:R18C162,examination!R13C8:R13C162,examination!RC8:RC162)"
    
    Next ttt
    
    PLODetail.Cells(a + 6, 17) = "=SUMAAA(RC[-9]:RC[-1])"
   ' PLODetail.Cells(a + 6, 163) = "=RC[-146]*'PLO Detail'!R16C7/100"
    
    PLODetail.Cells(a + 6, 179) = "=SUMAAA(RC[-9]:RC[-1])"
    PLODetail.Cells(a + 6, 180) = "=RC[-1]*MENU!R17C7/" & Trim(Str(totalExamMark))
    PLODetail.Cells(a + 6, 198) = "=SUMAAA(RC[-9]:RC[-1])"
    PLODetail.Cells(a + 6, 157) = "=sumTotalMarkcheck(RC[-9]:RC[-1])"
    PLODetail.Cells(a + 6, 209) = "=SUMAAA(RC[-9]:RC[-1])"
    
    

'formula untuk assessment - kena test
    formulastr = "=kiraAssesmentiCPGA(RC8:RC" & Trim(Str(8 + noOfAssessment)) & ",R15C8:R15C" & Trim(Str(8 + noOfAssessment)) & ",R13C8:R13C" & Trim(Str(8 + noOfAssessment)) & ")"
    Assessment.Cells(a + 6, 65) = formulastr

    formulastr = "=kiraExamiCPGA(RC8:RC" & Trim(Str(8 + noOfExam)) & ",R13C8:R13C" & Trim(Str(8 + noOfExam)) & ")"
    examination.Cells(a + 6, 163) = formulastr
    
'    Sheets("rawscore").Cells(a + 6, 1) = a - 12
'    Sheets("rawscore").Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
'    Sheets("rawscore").Cells(a + 6, 3) = namapelajar
'    Sheets("rawscore").Cells(a + 6, 15) = "=kiratest(kirabaru(RC[-7],R17C8,R15C8),kirabaru(RC[-6],R17C9,R15C9),kirabaru(RC[-5],R17C10,R15C10),kirabaru(RC[-4],R17C11,R15C11),kirabaru(RC[-3],R17C12,R15C12),kirabaru(RC[-2],R17C13,R15C13))"
'    Sheets("rawscore").Cells(a + 6, 31) = "=kiraass(kirabaru(RC[-15],R17C16,R15C16),kirabaru(RC[-14],R17C17,R15C17),kirabaru(RC[-13],R17C18,R15C18),kirabaru(RC[-12],R17C19,R15C19),kirabaru(RC[-11],R17C20,R15C20),kirabaru(RC[-10],R17C21,R15C21),kirabaru(RC[-9],R17C22,R15C22),kirabaru(RC[-8],R17C23,R15C23),kirabaru(RC[-7],R17C24,R15C24),kirabaru(RC[-6],R17C25,R15C25),kirabaru(RC[-5],R17C26,R15C26),kirabaru(RC[-4],R17C27,R15C27),kirabaru(RC[-3],R17C28,R15C28),kirabaru(RC[-2],R17C29,R15C29),kirabaru(RC[-1],R17C30,R15C30))"
'    Sheets("rawscore").Cells(a + 6, 32) = "=RC[-1]+RC[-17]"
'    Sheets("rawscore").Cells(a + 6, 33) = "=EXAM!R[-6]C[26]"
'    Sheets("rawscore").Cells(a + 6, 34) = "=RC[-1]/R17C33*R17C34"
'    Sheets("rawscore").Cells(a + 6, 36) = "=kiratotal(RC[-2],RC[-21],RC[-5],RC[-1])"
'    Sheets("rawscore").Cells(a + 6, 37) = "=kiratestdouble(RC[-1])"
'    Sheets("rawscore").Cells(a + 6, 38) = "=kiratestdouble(RC[-5])"
'    Sheets("rawscore").Cells(a + 6, 39) = "=kiratestdouble(RC[-8])"
'    Sheets("rawscore").Cells(a + 6, 40) = "=kiratestdouble(RC[-25])"


    
Next a




RowShow a + 0, 1994, False



url = Sheets("parameter").Cells(18, 3) + "auditDownload.asp"
args.RemoveAll
args.Add "login", Trim(Sheets("login").Cells(1, 7))
args.Add "kampusID", Trim((arrayKampus(cKampus.ListIndex).kampusID))
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", Trim((arrayFakulti(cFakulti.ListIndex).fakultiID))
args.Add "Kodkursus", Trim(arrayMarkah(0).krskodkursus)
args.Add "kumpulan", Trim(arrayMarkah(0).pgdKumpulan)
args.Add "semester", Sheets("parameter").Cells(12, 3)

toArray1 HttpQuery(url, args), DATA1



Else
    MsgBox "No data found - please check your group name"
    Sheets("LE15").Cells(7, 11) = ""
End If

KUARANTIN1    'check KUARANTIN


'exittesting:

MsgBox "Download Completed"
Pro.Caption = ""
Application.Calculation = xlCalculationAutomatic
frmLoadList.Hide
Application.EnableEvents = True

Sheets("rawscore").Protect Password:="abc010203"
Sheets("exam").Protect Password:="abc010203"
Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
Sheets("KUARANTIN exam").Protect Password:="abc010203"
Sheets("LE15").Protect Password:="abc010203"
Sheets("KUARANTIN le15").Protect Password:="abc010203"
Assessment.Protect Password:="abc010203"
examination.Protect Password:="abc010203"
PLODetail.Protect Password:="abc010203"
PLOgrade.Protect Password:="abc010203"

End Sub



Private Function KUARANTIN1()
Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim namapelajar As String

Pro.Caption = "Process - Load student list(KUARANTIN-if available) "
DoEvents

url = Sheets("parameter").Cells(18, 3) + "studentlistGDiploma.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "semester", Sheets("parameter").Cells(12, 3)

toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)


pages = jumRekod / 26


Pro.Caption = "Process - Transfering list student(if available)"
DoEvents
If DATA1(0, 0) <> "no data" Then
    

    
    ReDim arrayMarkah(jumRekod)
    county = 0
    For county = 0 To UBound(DATA1, 1) - 1
        arrayMarkah(county).akdfakid = DATA1(county, 6)
        arrayMarkah(county).akdRkdIdPengajian = DATA1(county, 8)
        arrayMarkah(county).krskodkursus = DATA1(county, 7)
        arrayMarkah(county).pelNamaPelajar = DATA1(county, 2)
        arrayMarkah(county).pelNoKP = DATA1(county, 1)
        arrayMarkah(county).pelNoPelajar = DATA1(county, 0)
        arrayMarkah(county).pgdGred = ""
        arrayMarkah(county).pgdID = DATA1(county, 10)
        arrayMarkah(county).pgdKumpulan = DATA1(county, 9)
        arrayMarkah(county).pgdMrkhPurata = DATA1(county, 11)
        arrayMarkah(county).pgpBahagian = DATA1(county, 5)
        arrayMarkah(county).pgpKmpID = DATA1(county, 3)
        arrayMarkah(county).pgpPrgID = DATA1(county, 4)
        arrayMarkah(county).tl = DATA1(county, 18)
        arrayMarkah(county).audit = DATA1(county, 19)
        arrayMarkah(county).program = DATA1(county, 4)
        arrayMarkah(county).mode1 = DATA1(county, 8)
        arrayMarkah(county).bayar = DATA1(county, 21)
        If DATA1(county, 20) <> vbNullString Then
            arrayMarkah(county).status = DATA1(county, 20)
        Else
            arrayMarkah(county).status = "Valid status"
        End If
    Next county

Set rs = Nothing

Pro.Caption = "Process - formatting list/formula"
DoEvents


Sheets("KUARANTIN LE15").Cells(6, 5) = arrayKampus(cKampus.ListIndex).kampusCode + "-" + arrayKampus(cKampus.ListIndex).kampusName
If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
    Sheets("KUARANTIN LE15").Cells(7, 5) = arrayFakulti(cFakulti.ListIndex).fakultiCode + "-" + arrayFakulti(cFakulti.ListIndex).fakultiName
End If

Sheets("KUARANTIN LE15").Cells(10, 5) = Sheets("parameter").Cells(14, 3)
Sheets("KUARANTIN LE15").Cells(6, 11) = arrayMarkah(0).krskodkursus
Sheets("KUARANTIN LE15").Cells(8, 11) = arrayMarkah(0).pgdKumpulan


Sheets("KUARANTIN LE15").Cells(9, 11) = Sheets("parameter").Cells(13, 3)
Application.EnableEvents = False

k = 13
While Sheets("KUARANTIN le15").Cells(k, 2) <> ""
    k = k + 1
Wend


Application.Calculation = xlCalculationManual
For a = 13 To k + 5
    Sheets("KUARANTIN LE15").Cells(a, 1) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 2) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 3) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 5) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 6) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 7) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 12) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 13) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 2) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 1) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 3) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 59) = vbNullString
    Sheets("KUARANTIN rawscore").Cells(a + 6, 2) = vbNullString
    Sheets("KUARANTIN rawscore").Cells(a + 6, 1) = vbNullString
Next a


For a = 13 To 13 + county - 1
    Pro.Caption = "Process - formatting list/formula " + Trim(Str(a - 12)) + "/" + Trim(Str(county))
    DoEvents
    
        namapelajar = arrayMarkah(a - 13).pelNamaPelajar
    If Left(namapelajar, 1) = "'" Then
        namapelajar = "'" + namapelajar
    End If
    
    Sheets("KUARANTIN LE15").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("KUARANTIN LE15").Cells(a, 2) = a - 12
    Sheets("KUARANTIN LE15").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("KUARANTIN LE15").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("KUARANTIN LE15").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("KUARANTIN LE15").Cells(a, 7) = namapelajar
    Sheets("KUARANTIN LE15").Cells(a, 12) = "=tranferKeTemplate('KUARANTIN RAWSCORE'!R[6]C[24])"
    Sheets("KUARANTIN LE15").Cells(a, 13) = "=KIRAGRED(RC[-1],RC[4],RC[7],RC[9],RC[10])"
    Sheets("KUARANTIN LE15").Cells(a, 17) = arrayMarkah(a - 13).tl
    Sheets("KUARANTIN LE15").Cells(a, 18) = arrayMarkah(a - 13).audit

    Sheets("KUARANTIN LE15").Cells(a, 20) = arrayMarkah(a - 13).program
    Sheets("KUARANTIN LE15").Cells(a, 21) = arrayMarkah(a - 13).mode1
    Sheets("KUARANTIN LE15").Cells(a, 22) = arrayMarkah(a - 13).bayar
    Sheets("KUARANTIN LE15").Cells(a, 23) = arrayMarkah(a - 13).status
    
'    Sheets("KUARANTIN exam").Cells(a, 3) = namapelajar
'    Sheets("KUARANTIN exam").Cells(a, 59) = "=checkexamtotal(RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39],RC[-38],RC[-37])"
'    Sheets("KUARANTIN exam").Cells(a, 60) = "=KIRATESTDOUBLE(RC[-1])"
'    Sheets("KUARANTIN exam").Cells(a, 1) = a - 12
'    Sheets("KUARANTIN exam").Cells(a, 2) = arrayMarkah(a - 13).pelNoPelajar
'
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 3) = namapelajar
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 15) = "=kiratest(kirabaru(RC[-7],R17C8,R15C8),kirabaru(RC[-6],R17C9,R15C9),kirabaru(RC[-5],R17C10,R15C10),kirabaru(RC[-4],R17C11,R15C11),kirabaru(RC[-3],R17C12,R15C12),kirabaru(RC[-2],R17C13,R15C13))"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 31) = "=kiraass(kirabaru(RC[-15],R17C16,R15C16),kirabaru(RC[-14],R17C17,R15C17),kirabaru(RC[-13],R17C18,R15C18),kirabaru(RC[-12],R17C19,R15C19),kirabaru(RC[-11],R17C20,R15C20),kirabaru(RC[-10],R17C21,R15C21),kirabaru(RC[-9],R17C22,R15C22),kirabaru(RC[-8],R17C23,R15C23),kirabaru(RC[-7],R17C24,R15C24),kirabaru(RC[-6],R17C25,R15C25),kirabaru(RC[-5],R17C26,R15C26),kirabaru(RC[-4],R17C27,R15C27),kirabaru(RC[-3],R17C28,R15C28),kirabaru(RC[-2],R17C29,R15C29),kirabaru(RC[-1],R17C30,R15C30))"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 32) = "=RC[-1]+RC[-17]"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 33) = "='KUARANTIN EXAM'!R[-6]C[26]"
'
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 34) = "=RC[-1]/R17C33*R17C34"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 36) = "=kiratotal(RC[-2],RC[-21],RC[-5],RC[-1])"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 37) = "=kiratestdouble(RC[-1])"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 38) = "=kiratestdouble(RC[-5])"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 39) = "=kiratestdouble(RC[-8])"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 40) = "=kiratestdouble(RC[-25])"
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
'    Sheets("KUARANTIN rawscore").Cells(a + 6, 1) = a - 12
   
Next a

End If
End Function

Private Sub Label1_Click()

End Sub

Private Sub UserForm_Activate()

End Sub

Private Sub UserForm_Click()

End Sub


Private Sub Retv()
Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim namapelajar As String
Dim loop12 As Integer

Sheets("LE15").Unprotect Password:="abc010203"
Sheets("rawscore").Unprotect Password:="abc010203"
Sheets("exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN le15").Unprotect Password:="abc010203"
Assessment.Unprotect Password:="abc010203"
examination.Unprotect Password:="abc010203"
PLODetail.Unprotect Password:="abc010203"
PLOgrade.Unprotect Password:="abc010203"


RowShow 1, 1994, True
Sheets("menu").Activate

txtkursus = UCase(txtkursus)
    
Pro.Caption = "Process - Load course parameter"
DoEvents

Pro.Caption = "Process - setting course parameter"
DoEvents
url = Sheets("parameter").Cells(18, 3) + "kursus.asp"
args.RemoveAll
args.Add "kursus", txtkursus
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Error, no course found"
    Sheets("rawscore").Protect Password:="abc010203"
    Sheets("exam").Protect Password:="abc010203"
…
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 668160 bytes
SHA-256: 284508c2148190b5a4d5e6674c13386832215d24275d77949b1091e3af4a7f8a
Detection
ClamAV: Xls.Malware.Logan-10010435-0
Obfuscation or payload: unlikely