Leisureeen

导航

C语言经典题库V2.1

C语言经典题库V2.1,‎September ‎28, ‎2018那天晚上写的新版本。

一个ExcelVBA的项目,功能是能够从题库中随机抽题,并利用了新版(即07年往后)的office的UI。

 

UI配置文件(customUI.xml):

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

    <ribbon startFromScratch="true">

        <tabs>

            <tab id="myTab" label="C Language">



<group id="g1" label="Rnd">

    <button id="r5" label="Rnd_5" imageMso="BorderBottomNoToggle" size="large" supertip="Rand_5" onAction="act11"/>

    <button id="r10" label="Rnd_10" imageMso="BorderDoubleBottom" size="large" supertip="Rand_10" onAction="act12"/>

    <button id="r20" label="Rnd_20" imageMso="AlignBottomExcel" size="large" supertip="Rand_20" onAction="act13"/>

    <button id="r40" label="Rnd_40" imageMso="AlignCenter" size="large" supertip="Rand_40" onAction="act14"/>
</group>
<group id="g2" label="More">

    <button id="finish" label="finish" imageMso="Spelling" size="large" onAction="act21"/>
    <button id="about" label="about" imageMso="FunctionsLogicalInsertGallery" size="large" onAction="act22"/>
</group>


            </tab>

        </tabs>

    </ribbon>

</customUI>

 

act模块(主模块):

Public Sub act11(a11 As IRibbonControl)
    Call RndFind(5)
End Sub

Public Sub act12(a12 As IRibbonControl)
    Call RndFind(10)
End Sub

Public Sub act13(a13 As IRibbonControl)
    Call RndFind(20)
End Sub

Public Sub act14(a14 As IRibbonControl)
    Call RndFind(40)
End Sub

Public Sub act21(a21 As IRibbonControl)
    On Error GoTo Err
    Sheet2.Select
    If Sheet2.Columns("C:C").EntireColumn.Hidden Then
        If MsgBox("Do you want to finish the exam?", 36, "Please confirm") = 6 Then
            Dim ipy As Byte
            Sheet2.Unprotect Password:=""
            Sheet2.Columns("C:C").EntireColumn.Hidden = False
            Sheet2.Columns("B:B").Validation.Delete
            For ipy = 1 To 40
                If Sheet2.Cells(ipy, 2) <> Sheet2.Cells(ipy, 3) Then
                    Sheet2.Cells(ipy, 2).Interior.Color = 65535
                Else
                    Sheet2.Cells(ipy, 2).Interior.Pattern = xlNone
                End If
            Next
            Sheet2.Cells(1, 1).Select
        End If
    Else
        MsgBox "No examinations.", 16, "ERROR"
    End If
    Exit Sub
Err:
    MsgBox "Unexpect ERROR!", 16, "ERROR"
End Sub

Public Sub act22(a22 As IRibbonControl)
    MsgBox "Powered By Leisureeen." & vbCrLf & "E-mail:  leisureeen@qq.com", 64, "About The Designer"
End Sub

Public Sub RndFind(Num)
    Dim rndn%, i As Byte
    On Error GoTo Err
    Sheet2.Select
    If Sheet2.Columns("C:C").EntireColumn.Hidden Then
        MsgBox "Under examination.", 16, "ERROR"
        Exit Sub
    End If
    Sheet2.Cells = ""
    For i = 1 To 40
        Sheet2.Cells(i, 2).Interior.Pattern = xlNone
    Next
    Sheet2.Columns("C:C").EntireColumn.Hidden = True
    Randomize
    For i = 1 To Num
        rndn = Int(Rnd * 559 + 1)
        Sheet2.Cells(i, 1) = Sheet1.Cells(rndn, 1)
        Sheet2.Cells(i, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="A,B,C,D"
        Sheet2.Cells(i, 3) = Sheet1.Cells(rndn, 2)
    Next
    Sheet2.Columns("B:B").Locked = False
    Sheet2.Protect Password:=""
    Sheet2.Cells(1, 2).Select
    Exit Sub
Err:
    MsgBox "Unexpect ERROR!", 16, "ERROR"
End Sub

 

posted on 2020-04-15 14:32  Leisureeen  阅读(278)  评论(0编辑  收藏  举报

JS