none
一个菜鸟问题,功能区回调是什么意思? RRS feed

  • 问题

  • 我是按照  “How do I”视频的操作,才进行不到两分钟就不一样。

    视频地址  http://msdn.microsoft.com/zh-cn/bb629407.aspx#extend    中的 “如何向 Excel Worksheet 传送数据”的视频。

    按照步骤我用  相同的文件名建立了相同的项目----打开解决方案资源管理器------右键点击主项目----点击添加----新建项-----点击功能区(XML),出现“Ribbon1”-----点击添加        之后就不一样了。

    视频上出现的是一个 Ribbon1控件,我出现的是很多代码。代码如下。还有“功能区回调”。不知它是什么意思。



    我第一次建立有关Excel的程序,不知该怎么办。

    2010年2月10日 10:42

答案

全部回复

  • 'TODO: 按照以下步骤启用功能区(XML)项:

    '1. 将以下代码块复制到 ThisAddin、ThisWorkbook 或 ThisDocument 类中。

    'Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
    '    Return New Ribbon1()
    'End Function

    '2. 在此类的“功能区回调”区域中创建回调方法,以处理用户
    '   操作(例如单击按钮)。注意: 如果已经从功能区设计器中导出此功能区,
    '   请将代码从事件处理程序移动到回调方法,并
    '   修改该代码以使用功能区扩展性(RibbonX)编程模型。

    '3. 向功能区 XML 文件中的控制标记分配属性,以标识代码中的相应回调方法。

    '有关详细信息,请参见 Visual Studio Tools for Office 帮助中的功能区 XML 文档。

    <Runtime.InteropServices.ComVisible(True)> _
        Public Class Ribbon1
        Implements Office.IRibbonExtensibility

        Private ribbon As Office.IRibbonUI

        Public Sub New()
        End Sub

        Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
            Return GetResourceText("Excel_vb_2.Ribbon1.xml")
        End Function

    #Region "功能区回调"
        '在此创建回调方法。有关添加回调方法的详细信息,请在解决方案资源管理器中选择功能区 XML 项,然后按 F1。
        Public Sub Ribbon_Load(ByVal ribbonUI As Office.IRibbonUI)
            Me.ribbon = ribbonUI
        End Sub

     

    #End Region

    #Region "帮助器"

        Private Shared Function GetResourceText(ByVal resourceName As String) As String
            Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
            Dim resourceNames() As String = asm.GetManifestResourceNames()
            For i As Integer = 0 To resourceNames.Length - 1
                If String.Compare(resourceName, resourceNames(i), StringComparison.OrdinalIgnoreCase) = 0 Then
                    Using resourceReader As IO.StreamReader = New IO.StreamReader(asm.GetManifestResourceStream(resourceNames(i)))
                        If resourceReader IsNot Nothing Then
                            Return resourceReader.ReadToEnd()
                        End If
                    End Using
                End If
            Next
            Return Nothing
        End Function

    #End Region

    End Class

    2010年2月10日 10:43
  • “How do I”视频 
    我是用遨游浏览器看的 ,它可以调用WMP软件。
    我的电脑IE浏览器不能看
    2010年2月12日 8:54
  • 先拜年。
        问题我解决了,原来是要建立EXCEL外接程序。
        参考地址 http://msdn.microsoft.com/zh-cn/library/aa942955.aspx
    2010年2月12日 12:18
  • 用VS2010就运行成功
    2010年2月17日 7:30