Làm th? nào đ? xây d?ng m?t Office 2000 COM add-in trong Visual Basic

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 238228 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Microsoft Office 2000 và sau đó h? tr? m?t m?i, th?ng nh?t thi?t k? ki?n trúc cho vi?c xây d?ng ?ng d?ng add-in đ? tăng cư?ng và ki?m soát các ?ng d?ng văn ph?ng. Add-in ? đây đư?c g?i là COM Add-Ins. Bài vi?t này s? ch?ng minh làm th? nào đ? xây d?ng m?t COM Add-In b?ng cách s? d?ng Visual Basic.

THÔNG TIN THÊM

M?t COM Add-In có m?t inprocess COM server (m?t DLL ActiveX) mà th?c hi?n các giao di?n IDTExensibility2 như mô t? trong thư Microsoft Add-In nhà thi?t k? lo?i vi?n (Msaddndr.dll). T?t c? các COM add-in k? th?a t? giao di?n này và ph?i th?c hi?n m?i phương pháp năm c?a m?nh.

OnConnection

S? ki?n OnConnection cháy b?t c? khi nào COM add-in đư?c k?t n?i. Add-in có th? đư?c k?t n?i trên kh?i đ?ng, ngư?i dùng cu?i, ho?c thông qua t? đ?ng hóa. N?u OnConnection tr? v? thành công, add-in đư?c g?i là n?p. N?u m?t l?i đư?c tr? l?i, các ?ng d?ng máy ch? lưu tr? ngay l?p t?c phát hành c?a nó tham chi?u đ?n add-in và các đ?i tư?ng b? phá h?y.

OnConnection m?t các tham s? b?n sau đây:
  • ?ng d?ng - m?t tham chi?u đ?n đ?i tư?ng ?ng d?ng máy ch? lưu tr?.
  • ConnectMode - m?t h?ng s? xác đ?nh như th? nào add-in đ? đư?c k?t n?i.
    • ext_cm_AfterStartup - b?t đ?u b?i ngư?i dùng cu?i t? h?p tho?i COM add-in.
    • ext_cm_CommandLine - k?t n?i t? d?ng l?nh. (Không áp d?ng đ? xây d?ng COM add-in cho các ?ng d?ng văn ph?ng.)
    • ext_cm_External - k?t n?i b?ng ?ng d?ng bên ngoài thông qua t? đ?ng hóa. (Không áp d?ng đ? xây d?ng COM add-in cho các ?ng d?ng văn ph?ng.)
    • ext_cm_Startup - b?t đ?u b?i máy ch? ?ng d?ng khi kh?i đ?ng. (Hành vi này đư?c đi?u khi?n b?i m?t thi?t l?p trong s? đăng k?.)
  • AddInInst - m?t tham chi?u đ?n đ?i tư?ng COMAddIn đ? c?p đ?n này thêm vào trong b? sưu t?p COMAddIns cho các ?ng d?ng máy ch? lưu tr?.
  • Tu? ch?nh - m?t m?ng c?a các phiên b?n có th? ch?a d? li?u ngư?i dùng xác đ?nh.

OnDisconnection

S? ki?n OnDisconnection cháy khi các COM thêm nh?p b? ng?t k?t n?i và ngay trư?c khi nó unloads t? b? nh?. Add-in nên th?c hi?n b?t k? d?n d?p các ngu?n l?c trong s? ki?n này, và khôi ph?c l?i b?t k? thay đ?i nào đư?c th?c hi?n cho các ?ng d?ng máy ch? lưu tr?.

OnDisconnection m?t hai tham s? sau đây:
  • RemoveMode - m?t h?ng s? xác đ?nh như th? nào add-in đ? b? ng?t.
    • ext_dm_HostShutdown - ng?t k?t n?i khi đóng c?a các ?ng d?ng máy ch? lưu tr?.
    • ext_dm_UserClosed - ng?t k?t n?i c?a ngư?i dùng ho?c m?t b? đi?u khi?n t? đ?ng hóa.
  • Tu? ch?nh - m?t m?ng c?a các phiên b?n có th? ch?a d? li?u ngư?i dùng xác đ?nh.

OnAddInsUpdate

S? ki?n OnAddInsUpdate cháy khi thay đ?i các thi?t l?p c?a đăng k? COM add-in. Nói cách khác, b?t c? khi nào m?t COM add-in đư?c cài đ?t ho?c g? b? t? các ?ng d?ng máy ch? lưu tr?, s? ki?n này cháy.

OnStartupComplete và OnBeginShutdown

C? hai OnStartupComplete và OnBeginShutdown phương pháp đư?c g?i là khi các ?ng d?ng máy ch? đ? đ? l?i ho?c đưa vào m?t ti?u bang nơi tương tác ngư?i dùng c?n tránh v? ?ng d?ng đang b?n t?i ho?c x?p d? chính nó t? b? nh?. OnStartupComplete ch? đư?c g?i là n?u b?n thêm trong đ? đư?c k?t n?i trong khi kh?i đ?ng, và OnBeginShutdown ch? đư?c g?i là n?u b?n thêm trong b? ng?t k?t n?i b?i máy ch? trong t?t máy.

B?i v? giao di?n ngư?i dùng cho các ?ng d?ng máy ch? lưu tr? là ho?t đ?ng đ?y đ? khi nh?ng s? ki?n cháy, h? có th? là cách duy nh?t đ? th?c hi?n m?t s? hành đ?ng mà n?u không s? không có s?n t? OnConnection và OnDisconnection.

Đăng k? COM add-in

Thêm vào b?nh thư?ng COM đăng k?, m?t COM thêm vào c?n đăng k? chính nó v?i m?i ?ng d?ng văn ph?ng, trong đó nó ch?y. Đ? đăng k? chính nó v?i m?t ?ng d?ng c? th?, add-in nên t?o ra m?t ph? chính, b?ng cách s? d?ng ProgID c?a nó như là tên cho phím, theo v? trí sau:
HKEY_CURRENT_USER\Software\Microsoft\Office\<OfficeApp>\Addins\<ProgID>
Add-in có th? cung c?p giá tr? t?i v? trí ch? ch?t này đ?i v?i c? hai tên thân thi?n hi?n th? và m?t mô t? đ?y đ?. Ngoài ra, add-in nên xác đ?nh hành vi mong mu?n t?i c?a nó b?ng cách s? d?ng m?t giá tr? DWORD đư?c g?i là "loadbehavior." Giá tr? này s? xác đ?nh như th? nào add-in đư?c n?p b?i các ?ng d?ng máy ch? lưu tr? và bao g?m m?t s? k?t h?p c?a các giá tr? sau:
  • 0 = Ng?t k?t n?i - không đư?c n?p.
  • 1 = K?t n?i - đư?c n?p.
  • 2 = Bootload - t?i v? ?ng d?ng kh?i đ?ng.
  • 8 = DemandLoad - t?i ch? khi yêu c?u c?a ngư?i s? d?ng.
  • 16 = ConnectFirstTime - t?i ch? m?t l?n (trên kh?i đ?ng ti?p theo).
Giá tr? đi?n h?nh xác đ?nh là 0x03 (k?t n?i | Bootload).

Add-in mà th?c hi?n IDTExtensibility2 c?ng nên ch? đ?nh m?t DWORD giá tr? đư?c g?i là "CommandLineSafe" đ? ch? ra cho dù h? là an toàn cho các ho?t đ?ng h? tr? m?t giao di?n ngư?i dùng. M?t giá tr? c?a 0x00 có ngh?a là sai, 0x01 là đúng s? th?t.

Xây d?ng m?t COM add-in

B?n có th? xây d?ng m?t COM Add-In trong m?t trong ba cách đư?c đ? c?p dư?i đây:

Xây d?ng m?t COM thêm vào b?ng cách s? d?ng Com thêm trong m?u

N?u b?n có h? đi?u hành Microsoft Office 2000 nhà phát tri?n ho?c Microsoft Office XP nhà phát tri?n và Visual Basic 6.0, cách d? nh?t đ? xây d?ng m?t COM Add-in là đ? s? d?ng COM in.vbp thêm m?u. D? án này n?m trong thư m?c con ODETools\V9\Samples\OPG\Samples\CH11\VB_COM_AddIn trên Office 2000 Developer CD. Sao chép các t?p trong c?p này vào c?p Visual Basic 6.0 Template\Projects, mà thư?ng là C:\Program Files\Microsoft Visual Studio\VB98\Template\Projects. Sao chép d? án m?u cho v? trí này s? đ?m b?o r?ng các b?n m?u xu?t hi?n trong h?p tho?i Visual Basic 6.0 d? án m?i. Xem chương 11 c?a Microsoft Office 2000 Visual Basic tr?nh c?a hư?ng d?n cho bi?t thêm thông tin v? m?u này và t?o COM Add-ins.

Xây d?ng m?t COM thêm vào b?ng cách s? d?ng Visual Basic 6 thêm thu?c nhà thi?t k?

N?u b?n có ch? c?n Microsoft Visual Basic 6.0 cài đ?t và mu?n s? d?ng m?t wrapper do đó b?n không c?n ph?i tr?c ti?p th?c hi?n IDTExtensibility2, b?n có th? s? d?ng ngư?i cùng thi?t Add-In k? mà b?n s? s? d?ng đ? xây d?ng m?t Add-In. VB6 làm theo các bư?c sau đ? xây d?ng như m?t add-in cho Microsoft Excel 2000 ho?c 2002:
  1. B?t đ?u Microsoft Visual Basic 6.0 và ch?n Addin như các lo?i d? án. Đi?u này nên thêm m?t l?p h?c thi?t k? d? án (k?t n?i) và m?t h?nh th?c (frmAddin).
  2. M? các Trình thiết kế c?a s? cho k?t n?i và ch?n Microsoft Excel t? các ?ng d?ng danh sách th? xu?ng.
  3. Trong các Đ?u tiên t?i hành vi danh sách th? xu?ng, ch?n Kh?i đ?ng.
  4. Gỡ bỏ frmAddin t? các d? án.
  5. T? các Dự án c?a s?, b?m chu?t ph?i vào các K?t n?i m?c và ch?n xem m?.
  6. Lo?i b? t?t c? các m? trong c?a s? m? c?a nhà thi?t k?. M? này ho?t đ?ng cho BB add-in, nhưng không ph?i văn ph?ng add-in.
  7. Thêm m? sau đây đ? các nhà thi?t k?:
       Option Explicit
    
       Dim oXL As Object
       Dim WithEvents MyButton As Office.CommandBarButton
    
       Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
        ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
        ByVal AddInInst As Object, custom() As Variant)
          On Error Resume Next
          MsgBox "My Addin started in " & Application.Name
       
          Set oXL = Application
       
          Set MyButton = oXL.CommandBars("Standard").Controls.Add(1)
             With MyButton
                .Caption = "My Custom Button"
                .Style = msoButtonCaption
    
              ' The following items are optional, but recommended. 
              ' The Tag property lets you quickly find the control 
              ' and helps MSO keep track of it when there is more than
              ' one application window visible. The property is required
              ' by some Office applications and should be provided.
    
                .Tag = "My Custom Button"
     
              ' The OnAction property is optional but recommended. 
              ' It should be set to the ProgID of the add-in, such that if
              ' the add-in is not loaded when a user presses the button,
              ' MSO loads the add-in automatically and then raises
              ' the Click event for the add-in to handle. 
    
                .OnAction = "!<" & AddInInst.ProgId & ">"
    
                .Visible = True
             End With
       
       End Sub
    
       Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
          AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
          On Error Resume Next
          MsgBox "My Addin was disconnected by " & _
             IIf(RemoveMode = ext_dm_HostShutdown, _
             "Excel shutdown.", "end user.")
          
          MyButton.Delete
          Set MyButton = Nothing
          Set oXL = Nothing
        End Sub
    
       Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton, _
         CancelDefault As Boolean)
          MsgBox "Our CommandBar button was pressed!"
       End Sub
  8. Lưu d? án và t?o các MyAddin.dll. Các nhà thi?t k? s? đăng k? add-in cho b?n.
  9. M? Microsoft Excel và b?n s? th?y m?t h?p thư khi add-in có t?i và b?c d?. Trên thanh công c? tiêu chu?n, b?n s? có m?t nút m?i có nh?n Nút tu? ch?nh c?a tôi r?ng chúng tôi thêm vào s? x? l? khi ch?n.

Xây d?ng m?t COM thêm vào b?ng cách s? d?ng th?c hi?n

Trong khi không ph?i là đơn gi?n, b?n có th? t?o m?t COM Add-In b?ng cách s? d?ng Microsoft Visual Basic 5.0 và các Th?c hi?n t? khóa tr?c ti?p th?c hi?n giao di?n IDTExtensibility2. Như?c đi?m duy nh?t đ? phương pháp này là đăng k?. K? t? khi Microsoft Visual Basic không bi?t làm th? nào đ? thêm các phím c?n thi?t đ? đăng k? add-in v?i văn ph?ng, b?n s? c?n ph?i làm đi?u này m?t cách riêng bi?t (trong m?t ti?n ích thi?t l?p tu? ch?nh, ho?c b?ng cách s? d?ng m?t k?ch b?n REG).

Tuy nhiên, l?i th? đ? s? d?ng th?c hi?n là nó là tr?c ti?p hơn và hi?u qu? hơn b?ng cách s? d?ng các nhà thi?t k?, và nó cho phép chúng tôi đ? t?o ra m?t đ?i tư?ng COM duy nh?t mà có th? làm vi?c trong các ?ng d?ng văn ph?ng nhi?u (thay v? c?a vi?c t?o ra m?t đ?i tư?ng k?t n?i riêng bi?t cho m?i ?ng d?ng, chúng tôi mu?n làm vi?c t?i).

Dư?i đây là các bư?c đ? vi?t m?t Add-trong s? d?ng th?c hi?n:
  1. M? Visual Basic và t?o ra m?t d? án m?i ActiveX DLL. Tên d? án MyCOMAddin, và đ?t tên các l?p h?c công c?ng K?t n?i.
  2. T? các Tham khảo h?p tho?i (d? án | Tài li?u tham kh?o), thêm m?t tham chi?u đ?n các Microsoft Office 9,0 (ho?c 10,0 cho Office XP) đ?i tư?ng và thư Microsoft Add-In thi?t k? ki?u vi?n. N?u b?n không th? t?m th?y các Add-In nhà thi?t k? trong danh sách tham kh?o, b?n nên tr?nh duy?t cho Msaddndr.dll ho?c Msaddndr.tlb, thư?ng n?m trong thư m?c "C:\Program files\common files\designer".
  3. Trong các Mã c?a s? cho k?t n?i, đ?a ch? sau đây:
       Option Explicit
       Implements IDTExtensibility2
    
       Dim oHostApp As Object
       Dim WithEvents MyButton As Office.CommandBarButton
    
      Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, _
         ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
    
         ByVal AddInInst As Object, custom() As Variant)
      
          On Error Resume Next
        ' Set a reference to the host application...
          Set oHostApp = Application
       
        ' If you aren't in startup, then manually call OnStartupComplete...
          If (ConnectMode <> ext_cm_Startup) Then _
             Call IDTExtensibility2_OnStartupComplete(custom)
          
       End Sub
    
       Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)
          Dim oCommandBars As Office.CommandBars
          Dim oStandardBar As Office.CommandBar
       
          On Error Resume Next
        ' Set up a custom button on the "Standard" commandbar...
          Set oCommandBars = oHostApp.CommandBars
          If oCommandBars Is Nothing Then
           ' Outlook has the CommandBars collection on the Explorer object
             Set oCommandBars = oHostApp.ActiveExplorer.CommandBars
          End If
       
          Set oStandardBar = oCommandBars.Item("Standard")
          If oStandardBar Is Nothing Then
           ' Access names it's main toolbar Database
    
             Set oStandardBar = oCommandBars.Item("Database")
          End If
       
        ' In case the button was not deleted, use the exiting one...
          Set MyButton = oStandardBar.Controls.Item("My Custom Button")
             If MyButton Is Nothing Then
    
                Set MyButton = oStandardBar.Controls.Add(1)
                With MyButton
                   .Caption = "My Custom Button"
                   .Style = msoButtonCaption
     
              ' The following items are optional, but recommended. 
              ' The Tag property lets you quickly find the control 
              ' and helps MSO keep track of it when there is more than
              ' one application window visible. The property is required
              ' by some Office applications and should be provided.
    
                .Tag = "My Custom Button"
     
              ' The OnAction property is optional but recommended. 
              ' It should be set to the ProgID of the add-in, such that if
              ' the add-in is not loaded when a user presses the button,
              ' MSO loads the add-in automatically and then raises
              ' the Click event for the add-in to handle. 
    
                   .OnAction = "!<MyCOMAddin.Connect>"
    
                   .Visible = True
                End With
             End If
     
        ' Display a simple message to know which application you started in...
          MsgBox "Started in " & oHostApp.Name & "."
    
          Set oStandardBar = Nothing
          Set oCommandBars = Nothing
       End Sub
    
       Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As _
         AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
    
          On Error Resume Next
          If RemoveMode <> ext_dm_HostShutdown Then _
             Call IDTExtensibility2_OnBeginShutdown(custom)
          
          Set oHostApp = Nothing
    
       End Sub
    
       Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)
          On Error Resume Next
        ' Notify the user you are shutting down, and delete the button...
          MsgBox "Our custom Add-In is unloading."
          MyButton.Delete
          Set MyButton = Nothing
       End Sub
    
       Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton,    CancelDefault As Boolean)
          MsgBox "Our CommandBar button was pressed!"
       End Sub
    
       Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)
          'You do nothing if this is called, but you need to
          'add a comment so Visual Basic properly implements the function...
       End Sub
  4. Lưu d? án và t?o các MyCOMAddin.dll. Tuy nhiên, trư?c khi b?n thêm trong s? làm vi?c, b?n c?n ph?i liên k?t nó v?i m?i ?ng d?ng văn ph?ng mà b?n mu?n ch?y nó. Trong th? gi?i th?c, m?t ti?n ích thi?t l?p có th? làm đi?u này khi DLL đư?c cài đ?t. Cho m?u này, b?n s? g?i m?t ch?c năng đăng k? tr?c ti?p t? IDE Visual Basic.
  5. Thêm m?t mô-đun m?i vào d? án. Trong m? cho Module1, thêm dư?i đây:
       Option Explicit
    
       Private Declare Function RegCreateKeyEx Lib "advapi32.dll" _
       Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
       ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As _
       Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, _
       phkResult As Long, lpdwDisposition As Long) As Long
       
       Private Declare Function RegSetValueEx Lib "advapi32.dll" _
       Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As _
       String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
       ByVal cbData As Long) As Long
       
       Private Declare Function RegDeleteKey Lib "advapi32.dll" _
       Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) _
       As Long
       
       Private Declare Function RegCloseKey Lib "advapi32.dll" _
       (ByVal hKey As Long) As Long
    
       Private Const HKEY_CURRENT_USER = &H80000001
       Private Const KEY_ALL_ACCESS = &H1F0037
       Private Const REG_CREATED_NEW_KEY = &H1
       Private Const REG_SZ = 1
       Private Const REG_DWORD = 4
    
       'These are the settings for your Add-in...
       Private Const PROGID As String = "MyCOMAddin.Connect"
       Private Const DESCRIPTION As String = "My VB5/6 COM Add-In Sample"
       Private Const LOADBEHAVIOR As Long = 3
       Private Const SAFEFORCOMMANDLINE As Long = 0
    
    
       Public Sub RegisterAll()
          RegisterOfficeAddin "Access"
          RegisterOfficeAddin "Excel"
          RegisterOfficeAddin "FrontPage"
          RegisterOfficeAddin "Outlook"
          RegisterOfficeAddin "PowerPoint"
          RegisterOfficeAddin "Word"
       End Sub
    
       Public Sub UnregisterAll()
          UnRegisterOfficeAddin "Access"
          UnRegisterOfficeAddin "Excel"
          UnRegisterOfficeAddin "FrontPage"
          UnRegisterOfficeAddin "Outlook"
          UnRegisterOfficeAddin "PowerPoint"
          UnRegisterOfficeAddin "Word"
       End Sub
    
       Public Sub RegisterOfficeAddin(sTargetApp As String)
          Dim sRegKey As String
          Dim nRet As Long, dwTmp As Long
          Dim hKey As Long
       
          sRegKey = "Software\Microsoft\Office\" & sTargetApp _
             & "\Addins\" & PROGID
       
          nRet = RegCreateKeyEx(HKEY_CURRENT_USER, sRegKey, 0, _
             vbNullString, 0, KEY_ALL_ACCESS, 0, hKey, dwTmp)
          
          If nRet = 0 Then
             If dwTmp = REG_CREATED_NEW_KEY Then
                Call RegSetValueEx(hKey, "FriendlyName", 0, _
                   REG_SZ, ByVal PROGID, Len(PROGID))
                Call RegSetValueEx(hKey, "Description", 0, _
                   REG_SZ, ByVal DESCRIPTION, Len(DESCRIPTION))
                Call RegSetValueEx(hKey, "LoadBehavior", 0, _
                   REG_DWORD, LOADBEHAVIOR, 4)
                Call RegSetValueEx(hKey, "CommandLineSafe", 0, _
                   REG_DWORD, SAFEFORCOMMANDLINE, 4)
             End If
             Call RegCloseKey(hKey)
          End If
       
       End Sub
    
       Public Sub UnRegisterOfficeAddin(sTargetApp As String)
          Dim sRegKey As String
          sRegKey = "Software\Microsoft\Office\" & sTargetApp _
             & "\Addins\" & PROGID
       
           Call RegDeleteKey(HKEY_CURRENT_USER, sRegKey)
       
       End Sub
  6. T? các Ngay l?p t?c c?a s? (xem | C?a s? ngay l?p t?c), lo?i RegisterAll, và sau đó nh?n ENTER. Đi?u này s? đăng k? add-in v?i t?t c? các Office applications h? tr? (Access, Excel, FrontPage, Outlook, PowerPoint và Word).
  7. M? b?t k? ?ng d?ng văn ph?ng li?t kê trư?c. Nh?n th?y h?p thư trên kh?i đ?ng và t?t máy, và nút tùy ch?nh thêm vào thanh công c? tiêu chu?n.
  8. Khi b?n mu?n unregister add-in, g? UnregisterAll trong c?a s? Visual Basic ngay l?p t?c và sau đó nh?n ENTER.

THAM KH?O

"Microsoft Office 2000 Visual Basic Programmer's Guide", chương 11. Add-in, m?u, Wizards và thư vi?n.

Đ? bi?t thêm chi ti?t v? cách vi?t COM add-in, nh?p vào s? bài vi?t sau đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
230689M?U: Comaddin.exe Office 2000 COM add-in đư?c vi?t b?ng Visual C++
190253 Nhà thi?t k? VB6 không ho?t đ?ng trong VB5
Đ? bi?t thêm chi ti?t v? phát tri?n gi?i pháp d?a trên Web cho Microsoft Internet Explorer, ghé thăm Web site sau c?a Microsoft:
http://MSDN.Microsoft.com/IE/
Chú ý Khi b?n thêm m?t m?c tr?nh đơn Office Word t? m?t Visual Basic COM thêm vào b?ng cách s? d?ng các bư?c đư?c li?t kê trong bài vi?t này ho?c b?ng cách s? d?ng m?t phương pháp tương t?, m?c trong tr?nh đơn không làm vi?c như mong đ?i. Đ? bi?t thêm thông tin, h?y b?m vào s? bài vi?t sau đ? xem bài vi?t trong Cơ s? Ki?n th?c Microsoft:
313948Word s? m?t tài li?u tham kh?o đ? COM đ?i tư?ng m?c tr?nh đơn (CommandBarControl)

Thu?c tính

ID c?a bài: 238228 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
T? khóa: 
kbautomation kbhowto kbmt KB238228 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:238228

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com