Học qua các ví dụ: Ví dụ số 05 Hide

Euler

Mod
Thành viên BQT
Bài học lần này tôi sẽ giới thiệu cách ẩn nút bấm trên Tab Ribbon. Chủ đề này đã từng có bạn hỏi đáp trên diễn đàn .
Bạn cần đăng nhập để thấy đính kèm


Mã XML:
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_OnLoad">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="tuhocvba.net">
        <group id="Group1" label="Message">
          <button id="HideButton" label="Hide" onAction="HideButton_Click" />
        <button id="HelloButton2" label="Xinchao1" getVisible="AnNutBam_GetVisible" onAction="HelloButton2_Click" />
        <button id="HelloButton3" label="Xinchao2" getVisible="AnNutBam_GetVisible" onAction="HelloButton3_Click" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
Macro:
Mã:
Private rbIRibbonUI As IRibbonUI   ' Ribbon
Private rbVisible As Boolean ' Button Visible
'Callback for HideButton onAction
Sub HideButton_Click(control As IRibbonControl)
    If rbVisible = False Then
        rbVisible = True
    Else
        rbVisible = False
    End If
    rbIRibbonUI.Invalidate 'Refresh Ribbon
End Sub


'Hien thi/khong hien thi nut bam
Sub AnNutBam_GetVisible(control As IRibbonControl, ByRef returnedVal)
    
    returnedVal = rbVisible
End Sub

'Callback for HelloButton2 onAction
Sub HelloButton2_Click(control As IRibbonControl)
    MsgBox "OK1"
End Sub

'Callback for HelloButton3 onAction
Sub HelloButton3_Click(control As IRibbonControl)
    MsgBox "OK2"
End Sub
'========================
'Khi file duoc mo ra thi thu tuc nay se duoc thuc thi
Sub Ribbon_OnLoad(ribbon As IRibbonUI)
    Set rbIRibbonUI = ribbon
    rbVisible = True
    rbIRibbonUI.Invalidate  'Refresh Ribbon
End Sub
Về mã XML, có chú ý như sau:
XML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_OnLoad">
Thủ tục Ribbon_OnLoad sẽ được thực thi ngay khi file Excel được mở ra.
Trong code XML, chúng ta đã sử dụng thuộc tính getVisible để hiển thị/ẩn nút bấm. Các bạn hãy nhớ tên thuộc tính này, đây chính là điểm chính của bài học hôm nay.
Mã:
getVisible="AnNutBam_GetVisible"
Khi đó code cho macro, chúng ta sẽ có thủ tục tên là AnNutBam_GetVisible.
Thuộc tính onAction, giống như các bài học trước, nó dùng để ta định nghĩa tên macro sẽ được thực thi khi chúng ta click vào nút bấm.
Nguồn tham khảo:
 

tuhocvba

Administrator
Thành viên BQT
Video thuyết minh:
Bạn cần đăng nhập để thấy đa phương tiện
File demo:
 

vbano1

SMod
Thành viên BQT
Diễn giải thêm về logic của code:
Bạn cần đăng nhập để thấy đính kèm
 
Top