精华内容
下载资源
问答
  • 在office的高级应用中,域、控件、com组件、宏和VBA是必须要知道的几个术语,为什么会产生这么多术语,是为了自动化生产,是人的懒惰带来了生产力的提高。这5个对象的功能也可以理解为是从小到大的排列。域由内置的...

    在office的高级应用中,域、控件、com组件、宏和VBA是必须要知道的几个术语,为什么会产生这么多术语,是为了自动化生产,是人的懒惰带来了生产力的提高。这5个对象的功能也可以理解为是从小到大的排列。域由内置的域代码产生,能够自动产生一些关联,比如插入的文档目录就是一个域。

    域代码位于用特殊方法插入的花括号({ })中。
      域的格式:{ Name [参数] [\Switches ] }
      说明:Name :表示域的名称。Word 中有70 多个域。
      参数 :某些域有参数,某些没有。某些域带不同的参数,作用就不同。
      \Switches:域开关。分通用开关和只能用于某个域的特有开关两种。

      注意:域的名称、参数和开关之间是一个空白字符。“[ ]”表示可以加参数或开关,也可以不要。
      例:{ Date \@ "yyyy年M月d日" }   显示为:2010年2月5日
      第 { Page } 页                显示为:第 8 页
      第 { Page \* roman } 页        显示为:第 viii 页

    控件

    控件是一个可视化组件,是一个小图标,小图标集合了一些命令,在office中控件分成了两类窗体控件和active X控件。active X控件也是VBA的一个子程序,可以查看代码。com(component)组件是未可视化的,在office里com加载项(component object model是组件对象模型)可以理解为一个外部插件。

    宏和VBA

    下面说一下宏和VBA。宏在C语言中是替换,用#define定义,在这里也具有替换的意思,是一系列excel能够执行的VBA语句,一组命令(即操作)的集合,可以录制,或者可以直接编写宏,宏在vba中是子程序,所以以sub(subrountine)关键字标识符开头,以sub end关键字标识符结束。

    直到 90 年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为 VBA 是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:

    1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化

    2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.

    3. 要运行 VB 开发的应用程序,用户不必安装 VB,因为 VB 开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.
    尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方
    案的大部分知识.

    * VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.

    * VBA可以称作EXCEL的"遥控器".

    VBA 究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.

    此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.

    展开全文
  • vba调用vs2005使用atl开发的com组件

    千次阅读 2014-12-24 20:17:02
    1、打开vba开发工具,添加ComDll组件的引用 通过 工具 -- 引用 打开引用管理器。 2、调用代码 Private WithEvents mComDll As ComDllExample Private Sub mComDll_Event1(ByVal arg1 As Single)...

    1、新建工程

    New -- Project -- ATL Project

    勾选Allow merging of proxy/stub code


    2、添加接口

    右键工程 --  Add  --  ATL Simple Object





    3、添加接口函数

    类视图中,右键接口 --  Add  --  Add Method


    4、添加事件

    类视图中,展开类型库,右键连接点接口  --  Add  --  Add Method


    5、实现连接点事件





    点击确定后,会生成事件代码。

    6、触发事件。

    STDMETHODIMP CComDllExample::Method1(LONG arg1)
    {
    	// TODO: Add your implementation code here
    	Fire_Event1(2.0);
    	return S_OK;
    }
    
    在Method1中调用一下生成的Fire_Event1函数。

    7、编译工程。


    VBA中调用生成的组件

    1、打开vba开发工具,添加ComDll组件的引用

    通过 工具  --   引用 打开引用管理器。

    2、调用代码

    Private WithEvents mComDll As ComDllExample
    
    Private Sub mComDll_Event1(ByVal arg1 As Single)
        Debug.Print Str(arg1)
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Set mComDll = New ComDllExample
        mComDll.Method1 (20)
    End Sub
    

    需要注意的地方

    a)comdll接口函数参数类型要和VB兼容。  遇到过设置ULONG类型的参数,但是到VBA里面提示类型无法解析,改成LONG就好了。

    b)VB里面,使用WithEvents处理对象事件时,还需要单独set一下对象实例。





    展开全文
  • NULL 博文链接:https://teddywang.iteye.com/blog/780540
  • 获得COM组件(ocx、dll)的CLSID小工具

    热门讨论 2013-10-14 16:05:07
    不用OLE View工具,也可以获得com组件(ocx、dll)的类名和对应的clsid。此工具通过访问注册表,获得某个已经注册的com组件(ocx、dll)的所有类名和对应的clsid。
  • 为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进行加密。通常的做法是利用给工程设置密码的方法实现加密,对于这类加密方法,由于存在安全度低、易破解等问题,因此往往起不到应有的...

    为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进行加密。通常的做法是利用给工程设置密码的方法实现加密,对于这类加密方法,由于存在安全度低、易破解等问题,因此往往起不到应有的效果。通过将Excel VBA代码封装成DLL动态链接库,可有效防止代码被非法查看。

    在百度里搜索“封装EXCEL VBA”关键字,有很多封装VBA的教程,但99%是利用VB6(Microsoft Visual Basic 6.0)来封装,主要原因是VB6的操作界面及语法与Excel的VBA具有极高的相似度。2002年,随着VB.NET的引入,大部分人都放弃使用VB而选择VB.NET,VB6终将被淘汰,因此我们必须与时俱进,学习用Microsoft Visual Basic 2010封装VBA。我们可以在VS里建立com类项目,把NET类库的一些方法重新包装后暴露给VBA使用。

    案例:在工作表的C1单元格得出A1单元格+B1单元格的值。

    设计的VBA代码:

    1 Sub Test()
    2     On Error Resume Next
    3     Range("C1").Value = Range("A1").Value + Range("B1").Value
    4 End Sub

    一、使用Microsoft Visual Basic 2010制作DLL文件

    工具及原料:

    1Microsoft Office Excel 2003

    2Microsoft Visual Studio 2010

    3Windows XP 32位操作系统

    操作步骤:

    1、启动Microsoft Visual Studio 2010,在起始页界面点击“新建项目”,如图1所示。

    1

    2、在弹出的“新建项目”对话框选择“类库”,修改名称为“VBADLL”,点击确定,如图2所示。

     

    2

    3、在右侧的“解决方案资源管理器”视图里,找到系统默认建立的类库“Class1.vb”,右键删除该类库,如图3所示。

    3

    4、在菜单栏上点击“项目”——“添加类”,在弹出的“添加新项”窗口里往下拉,选择“com类”,并修改名称为ComExcel.vb。然后点击“添加”。如图4所示。

     

    4

    5、在菜单栏上点击“项目”——“VBADLL属性”,在“VBADLL”窗口里点击“引用”——“添加”,如图5所示。

     

    5

    6、在弹出的“添加引用”窗口里点击“COM”,往下拉选择“Microsoft Excel 11.0 Object Library”,然后点击“确定”,如图6所示。

     

    6

    注意,不同版本的EXCEL在“添加引用”——“COM”窗口里显示的版本号是不同的:

    EXCEL2000Microsoft Excel 9.0 Object Library

    EXCEL2002Microsoft Excel 10.0 Object Library

    EXCEL2003Microsoft Excel 11.0 Object Library

    EXCEL2007Microsoft Excel 12.0 Object Library

    EXCEL2010Microsoft Excel 14.0 Object Library

    EXCEL2013Microsoft Excel 15.0 Object Library

    7、按图7所示把窗口滚动条往下拉,勾选“Microsoft Office Interop”。 

    7

    8、在右侧的“解决方案资源管理器”视图里,找到第4步添加的类ComExcel.vb,右击弹出的菜单里点击“查看代码”,在ComExcel.vb代码窗口里添加如下代码。

     

     1 Public Sub Test()
     2 
     3         On Error Resume Next
     4 
     5         Dim VbApp As Excel.Application '定义Excel对象
     6 
     7         Dim VbSht As Excel.Worksheet '定义工作表对象
     8 
     9  
    10 
    11         VbApp = GetObject(, "Excel.Application")    '当前EXCEL对象赋值给VbApp
    12 
    13         VbSht = VbApp.ActiveSheet     '使VbSht表示为EXCEL的当前工作表
    14 
    15  
    16 
    17         '注意要在对象前加上VbSht变量以表示是EXCEL当前工作表的对象
    18 
    19         VbSht.Range("C1").Value = VbSht.Range("A1").Value + VbSht.Range("B1").Value
    20 
    21     End Sub

     

    8

    9、如图9所示,在工具栏上点击“全部保存”按钮(像一叠磁盘),在弹出的“保存项目”窗口里选择保存的位置,如本例保存到E盘,文件夹名称为VBDLL,然后点击“保存”。

     

    9

    10、菜单栏点击“生成”——“生成 VBADLL”,稍等片刻即可在E:\VBADLL\bin\Debug看到生成的DLL文件,同时还有一个TLB文件,如图10所示。

     

    10

    二、注册及在VBE里调用DLL文件

    11、如果你在图5所示窗口里点击“应用程序”,在图11所示窗口里点击“程序集信息”,弹出“程序集信息”里勾选“使用程序集COM可见”,然后点击“确定”。如此勾选后生成DLL文件的同时也就已经注册了DLL文件,如果你之前没有勾选,请勾选后重新生成DLL文件即可。

     

    11

    12、打开EXCEL,再打开“Visual Basic 编辑器”,在菜单栏点击“工具”——“引用”,在弹出的“引用”窗口里往下拉动滚动条,勾选“VBDLL”,然后点击“确定”。我们可以可以看到该引用定位到E:\VBADLL\bin\Debug\VBADLL.tlb,是TLB文件而不是DLL文件。如图12所示。


    12

    13、在ExcelV BE窗口中新建一个模块,并输入调用DLL文件Test过程的代码:

    1 Sub DLLtest()
    2     Dim DLL As New ComExcel '定义DLL为新类,即为DLL文件中的类模块ComExcel
    3     DLL.Test  '调用DLL中提供的过程,来完成原来在VBA中的功能,起到隐藏代码的效果
    4     Set DLL = Nothing  '释放类资源
    5 End Sub

    如图13所示,输代码时可以利用智能感知下拉列表框快速输入DLL文件里的对象,而没有必要一一记住再输入。

     

    13

    14、在Excel工作表中新建3个按钮并为其指定宏,现在可以测试调用了。

     

    14

    三、客户端注册及调用DLL的方法

    工具及原料:

    1、以上一、二步制作的ExcelDLL文件

    2、注册DLLBat批处理文件(等下制作)

    3Microsoft Office Excel 2003及以上

    4Windows XP/7/8/1032位操作系统

    5Microsoft .NET Framework 4.0

    操作步骤:

    1、制作Bat批处理文件供客户注册DLL

    ExcelVBADLL .DLL文件放到同一文件夹内,在该文件夹内新建一个Txt记事本文件,打开记事本输入以下批处理命令:

    @Echo off
    
    cd /d %~dp0
    
    xcopy /y zykc.dll %windir%\system32\
    
    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase %windir%\system32\VBADLL.dll /tlb:VBADLL.tlb
    
    if errorlevel 1 goto err
    
    Echo.
    
    Echo 注册类库成功!
    
    goto end
    
    :err
    
    Echo.
    
    Echo 注册类库失败!应以管理员身份运行!
    
    :end
    
    Pause>nul

    保存关闭记事本,重命名记事本包括后缀名.txt为“注册类库.bat”。

    到此,即可将包含ExcelDLLBAT文件的文件夹(如图15所示)发送给客户。

     

    15

    2、客户端注册DLL

    保证客户端已安装Microsoft .NET Framework 4.0,双击“注册类库.bat”文件即可完成注册,当注册不成功时,在“注册类库.bat”文件上单击右键,选择以管理员身份运行即可完成注册。

    Microsoft .NET Framework 4.0组件可以到微软官网下载:https://www.microsoft.com/zh-cn/download/details.aspx?id=17718

    现在,客户端即可在Excel里调用DLL文件了。

    笔者在Microsoft Office Excel 2010Windows 10 32位操作系统的客户端测试成功。若客户端为Microsoft Office Excel 2003不能成功注册DLL时,需要打一个补丁(office2003-KB907417-FullFile-CHS.exe),可以到微软官网下载:https://www.microsoft.com/zh-cn/download/details.aspx?id=10624

    若你希望用VB6封装VBA代码可参考163博客老木小屋的文章《VBA封装为DLL及调用》:http://ych4943.blog.163.com/blog/static/376967502012842360885/

    为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进行加密。通常的做法是利用给工程设置密码的方法实现加密,对于这类加密方法,由于存在安全度低、易破解等问题,因此往往起不到应有的效果。通过将Excel VBA代码封装成DLL动态链接库,可有效防止代码被非法查看。

    在百度里搜索“封装EXCEL VBA”关键字,有很多封装VBA的教程,但99%是利用VB6Microsoft Visual Basic 6.0)来封装,主要原因是VB6的操作界面及语法与ExcelVBA具有极高的相似度。2002年,随着VB.NET的引入,大部分人都放弃使用VB而选择VB.NETVB6终将被淘汰,因此我们必须与时俱进,学习用Microsoft Visual Basic 2010封装VBA。我们可以在VS里建立com类项目,把NET类库的一些方法重新包装后暴露给VBA使用。

    转载于:https://www.cnblogs.com/zyjq/p/6658361.html

    展开全文
  • ——将EXCEL VBA代码移植到VB.NET .NET是微软公司在2002年推出的全新编程框架,支持多种语言应用程序开发。使用Visual Basic在Microsoft .NET Framework上编程,这就是Visual Basic.NET,简称VB.NET。 VB.NET是...

    ——将EXCEL VBA代码移植到VB.NET

    .NET是微软公司在2002年推出的全新编程框架,支持多种语言应用程序开发。使用Visual Basic在Microsoft .NET Framework上编程,这就是Visual Basic.NET,简称VB.NET。

    VB.NET是Microsoft Visual Studio .NET组件中的重要组成部分,是VB6.0的后续版本,VB.NET仍使用VB的基本语法,二者几乎在90%以上保持相似或相同,虽然Excel VBA代码不能完全像移植到VB6.0那样直接移植到Visual Basic 2010,但大多数情况下,移植还是相当简单的。

    一、Excel程序的对象模型。

    在 Excel 中,Excel 程序对象(Application)是顶级的对象,往下依次是工作簿对象(Workbook)、工作表对象(Worksheet)和单元格对象(Range)。只有当打开了 Excel 程序(Appliation 对象),才能创建或打开工作簿(Workbook 对象),才能选中某个工作表(Worksheet 对象),以及对某个单元格区域(Range 对象)进行操作。

    众多个工作簿,若干张工作表,数不清的单元格,要在“Book1”工作簿中的“Sheet1”工作表中的“A1”单元格内录入内容“A1”,必须像叙述家庭住址一样把各个需引用的对象关系从大到小的顺序叙述清楚。如下代码:

    1 Sub Rng2()
    2  Application.Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1").Value = "A1"
    3 End Sub

    Application对象代表Excel程序,属于最顶层对象,通常可以省略,上述代码亦可修改为:

    1 Sub Rng3()
    2  Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1").Value = "A1"
    3 End Sub

    在 Excel VBA 中,引用或操作对象时允许省略其上级对象,但并非表示该对象的上一级的对象不存在。

    二、Visual Basic.NET编写处理Excel表格代码(即代码移植)

    1、声明对象变量时需要前置“Excel”,例如:

    Dim VbApp As Excel.Application '定义Excel对象
    
    Dim VbBook As Excel.Workbook '定义工作簿对象
    
    Dim VbSht As Excel.Worksheet '定义工作表对象
    
    Dim VbRng As Excel.Range '定义单元格对象

    2、不能直接使用“Application”(即Excel.exe进程),而需要一个变量调用。

    首先在模块中声明一个变量VbApp:

    Public VbApp As Excel.Application '定义Excel对象

    然后对变量VbApp赋值:

    (1)、引用Excel.exe进程

    通在Excel中引用DLL动态链接库Excel程序都是已经打开了的,即通过任务管理器查看进程可以看到Excel.exe进程,我们需要处理已打开Excel文档,必须引用当前Excel.exe进程。代码如下:

    VbApp = GetObject(, "Excel.Application") '引用当前Excel.exe进程,确保已打开Excel程序否则报错

    (2)、创建Excel.exe进程

    通过下列语句就可以创建新的Excel.exe进程了,Visual Basic .Net可以通过对此进程的处理来操作Excel表格:

    VbApp = New Excel.Application '创建新的Excel.exe进程

    在后续的应用中可调用变量VbApp来代替“Application”,如:

    当执行完创建一个新的Excel.exe进程语句后,通过任务管理器查看进程就发现多出Excel.exe进程,当此时Excel程序的运行界面并没有显示,在此语句后加入以下代码,Excel的运行界面就显示出来了:

    VbApp.Visible = True '显示Excel程序的运行界面

    Excel运行界面虽然显示,但其中并没有表格,下列代码是在Excel程序中创建一个新表格:

    VbApp.Workbooks.Add

    3、所有对象必须显示声明,表示它是Excel的对象。

    在 Excel VBA 中,引用或操作对象时允许省略其上级对象,但把代码移植到VB.NET中,我们必须使用完整的表达式精确表示某个对象。例如:

    Visual Basic .Net处理Excel表格是通过引用(或创建)的Excel.exe进程来实现的。引用(或创建)的Excel.exe进程对应上述代码中的VbApp,即变量VbApp代表Excel 程序对象(Application)。下面代码给工作簿Book1.xls的第1张工作表的“A1”单元格赋值“A1”:

    VbApp. BookExcel.Worksheets("Book1.xls").Range("A1").Value = "A1"

    当编辑完Excel表格后,可以通过下列语句就关闭Excel表格,并销毁Excel.exe进程:

    VbApp. BookExcel.Close ( )'关闭Excel表格
    
    VbApp.Quit ( )'销毁Excel.exe进程
    
    VbApp = Nothing '释放对象变量

    可见,我们在Excel编写VBA代码时严格使用完整的表达式精确表示对象,移植代码时使用变量VbApp来调用“Application”,即可。

    三、VBA与VB.NET语法变通

    随着VB.NET的引入,VB迎来了自发布以来最大的变革,整个运行库模型变成了一个新的公共语言运行库(CLR)环境,语言也从基于对象变成面向对象,对熟悉Excel VBA的程序员移植封装代码带来了困难。不仅需要掌握VB.NET语法,还需要理解并运用VB.NET提出的新功能、概念和观点。当然也需要掌握.Net框架,理解CLR(Common Language Runtime,通用语言进行时)。在移植代码时要特别以下语法变化。

    1、数据类型

    用于存储任意类型数据的数据类型Variant被Object替代;用于存储大浮点数的数据类型Currency被Decimal替代,并支持更高数度;在VBA中可以在声明字符 串时指定其长度,而VB.NET不支持固定长度字符串。

    2、变量赋值

    在VBA中不能同时声明和初始化变量,而VB.NET则支持声明的同时初始化变量。例如:

    Dim StrName As String
    
    StrName = "VBA封装"

    在VB.NET中可以二合一:

    Dim StrName As String = "VBA封装"

    在VBA中对对象变量赋值必须使用Set语句,而在VB.NET中已取消Set语句,也就是说对象变量的赋值与普通变量一样。如:

    ExcelVBA初始化对象变量: Set Rng=Nothing 

    而在VB.NET中不需要Set语句: Rng=Nothing 

    3、数组

    VBA数组下界可以自定义,如以下语句声明了下界为1、上界为10共10个元素的数组Arr:

    Dim Arr(1 To 10) As String

    而在VB.NET中,数组下界总是从0开始,若使用Dim Arr(1 To 10) As String声明数组将会报错。

    在VBA中,可以指定数组的长度,如:

    Dim Arr(2) As Integer

    这里的Arr数组长度是固定的,不能用ReDim语句改变长度。VB.NET不支持固定长度数组,所以ReDim总是有效。

    在VBA中,ReDim用于初始化动态数组,而在VB.NET中,ReDim关键字的使用略有变化,第一个变化是:必须先定义该数组实例,不能用ReDim语句声明数组;第二个变化是:ReDim只能用于改变数组长度,不能改变数组的维数。在VB.NET中动态数组声明时特别注意,如:

    Dim Arr() As Integer '声明一维动态数组

    上面的声明只能创建一个一维动态数组,若要声明一个二维动态数组,上述声明应包含一个逗号,如:

    Dim Arr(,) As Integer '声明二维动态数组

    4、变量作用域

    在VBA中,变量作用域有:过程级、模块级和全局。在VB.NET中新增了块作用域,也称为结构作用域。

    结构是由两条语句而不是一条语句组成的编码结构,如If…Then决策结构、For…Next循环结构。在VB.NET中,如果变量是在结构中声明的,则其作用域限定在结构内,该变量在遇到相应的Dim语句后才被创建,在结构结束处被销毁。如:

    1 If Flag = True Then
    2 
    3     Dim IntNum As Integer
    4 
    5 End If

    5、循环语句

    VB.NET增加了Continue关键字,使用Continue For语句,在For…Next循环结构中能够在到达Next语句之前进入下一次For…Next循环;当然也可以使用Continue Do语句,在Do…Loop循环结构中能够在到达Loop语句之前进入下一次Do…Loop循环。

    以上语法变化是必必须掌握的,当然我们还需要逐渐掌握一些新旧语法替代,如:虽VB.NET还支持数据类型转换函数,但在VB.NET应力争避免使用,处理数据类型转换的更通用方法是使用System.Convert类;Excel VBA是通过On Error语句来处理错误,这种处理方法在VB.NET中仍得到支持,但已被摒弃,强烈建议使用Try…Catch…Finally结构来处理异常(错误);VB.NET仍支持老式MsgBox()函数,但不建议使用,而是改用MessageBox.Show()函数。

    以上介绍并不能使读者了解VB.NET语法的方方面面,如果想进一步了解必须阅读一些专业书籍。如:

    《Visual Basic 2010入门经典(中文版)》——[美] James Foxall 著、梅兴文 译、人民邮电出版社。

    《Visual Basic 2010 & .NET 4 高级编程(第6版)》——(美) Billy Hollis 等著、彭珲 余科洋 译、清华大学出版社。

    转载于:https://www.cnblogs.com/zyjq/p/6659144.html

    展开全文
  • VBA调用Shell

    2021-08-28 15:32:59
    VBA中执行Shell介绍,打开应用,执行python、bat、mysql;
  • regasm注册com组件

    2019-05-13 17:29:00
    注意 : regasm.exe在不同framework版本下的系统路径  一般存储的路径为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ 系统的版本不同,运路径中的...转载于:https://www.cnblogs.com/aaronguo/p/10857884.html
  • VBA开发手册,描述了ActiveX的使用以及通过VBA控制外部程序的方法
  • windows 中提供了4个COM组件都可以进行数据采集。 Wininet WinHttp XmlHttp MSHTML https://msdn.microsoft.com/en-us/library/bb508515(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/hh801967(v=vs.85)...
  • 0x00 前言 在术的道路上,从来都是独善其行,如能结余同行,自当求之不得。 ...COMcomponent(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术...
  • 参见:http://www.phpnotes.top/2017/12/06/php/111/ 前提 ...[COM_DOT_NET] extension=php_com_dotnet.dll COM配置项 COM 配置选项 名字 默认 可修改范围 更新日志 com.allow_dcom "0" PHP_INI_SY
  • 利用VBA开发数据汇总工具通常在日常工作中总会用到Excel并且经常会遇到Excel将多个表格进行汇总。经过工作中的实践,发现用VBA开发具有一定重复性的功能,能够极大提高工作效率。最近,将本人曾开发的的Excel数据...
  • Python VS VBA 读取Excel中的文本框组件

    万次阅读 多人点赞 2021-02-27 19:32:58
    xls格式批量转xlsx 假如我们有一批xls文件,希望批量转换为xlsx: 我的实现方式是整个文件夹都转换完毕再关闭应用,这样相对来说处理更快一些,但可能更耗内存,代码如下: import win32com.client as win32 # ...
  • C#编写Com组件

    2010-03-11 20:06:00
    1、新建一个类库项目 2、将Class1.cs改为我们想要的名字 问是否同时给类改名,确定 3、修改Properties...COM Interop 注册”勾上 5、继续往下,找到“签名”选项卡 勾上“为程序集签名” 在下面的下拉框里面选择“ 新
  • python调用C:\\Users\\user\\Desktop\\tianqing-auto\\vba.bas(vba)代码: import win32com.client import pythoncom import time def embed_excel_file(filePath,embeddedFilePath,embeddedFileName): ...
  • vba 弹框

    2017-11-07 17:10:00
      '第三个按钮,上传数据到数据库 Private Sub CommandButton1_Click() str1 = "abcde" str2 = InputBox("请输入一个字符串!") ...转载于:https://www.cnblogs.com/1314520xh/p/7799906.html
  • VBA API详解

    千次阅读 2020-12-17 22:27:10
    Office版本变动  在office2010以前微软只提供了32-bit版本,但在2010以后出现了32-bit和64-bit两个版本...后者能处理更大的数据和VBA代码运行速度得到提升。代码的兼容性也变得复杂,特别是API的声明。 版本区别 ...
  • 如何使用VB编写Excel的COM组件

    千次阅读 2017-10-17 21:48:19
    10 随后启动Excel即可发现该COM得到了加载,关闭的时候也一样   11 如果是想要做成软件,则可以做一个批处理命令,先解压到一个指定目录,然后注册dll文件即可。当然,你如果想要"卸载"这个软件,反注册...
  • php调用com组件,返回的对象其属性和方法与你调用的具体com组件相关,以word.application为例,直接百度word.application即可找到微软的官方文档,如下: ...
  • 使用OneNote的COM组件,实现OCR功能。

    千次阅读 2016-11-07 14:18:04
    背景  在业务系统开发的过程中,很多情况下会去识别图片中的相关信息,并且把信息录入到系统中。现在希望通过自动化的方式录入,就有了以下的工作...(注:在 Microsoft Office 2003 中的工具组件中有一个“ M
  • VBA操作封装为DLL组件并在EXCEL中调用

    万次阅读 多人点赞 2015-03-14 17:12:49
    使用程序: 1、Microsoft Office Excel 2003 2、Microsoft Visual Basic 6.0 案例:在工作表的C1单元格得出A1单元格+B1...设计的VBA代码: Sub Test()  On Error Resume Next  Range("C1") = Cells(1, 1) +
  • VBA中调用Windows API的方法

    千次阅读 2019-10-08 17:52:14
    VBA中使用Windows API VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案。通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个Office应用...
  • 最近由大量的扫描单据需要摘录,就希望能够通过VBA程序辅助完成这项工作。经过一番检索,在能获取到的主要的OCR产品中,微软产品的识别率相对较高。但目前常用的Office 2013和Office 2016 Microsoft OFFICE 2013以后...
  • com的复杂性,有点超出我的想象。...Freebasic编译com,一个很明显的意义,就是在64位中,为VBA提供类库。基础知识:1、数据类型的转换:VBA的string全称是BSTR。这是VBA独有。VBA的数组,全称safeArray。vba的var...
  • 新建Win32 Console Application (C#),添加COM引用Microsoft Office Excel 15.0 Object Library (Office 2013对应版本15.0) 完整示例代码如下 using System; using Microsoft.Office; // Add new reference na...
  • python+COM组件可以实现在VBA中所有能做的事情,包括调用Excel函数。在使用方式上,python和VBA大同小异,在一些细节上会有些差异。比如,代码调用了一个Excel函数来获取当前表格内的行数,可以看到其调用形式与VB.....
  • 关于【VBA 网抓】的那些事,最近,由于我的一个VBA工程项目,需要做到与网页里的特定数据进行比对,由于在此之前,也没有对VBA网抓有过多的了解,因此就凭着一股猛劲,边做边学,并最终达到了预期目的。 对于此过程...
  • VB和VBS、VBA的区别及作用

    千次阅读 2020-10-24 17:39:25
    VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与VBA的关系也非常密切。它具有原语言容易学习的特性,并继承了JavaScript的跨平台的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接...
  • VBA中使用计时器的两种方法

    千次阅读 2019-10-05 21:53:03
    '===============================...' VBA采用Application.OnTime实现计时器 ' ' http://www.cnhup.com '================================ Public RunWhen As Double Public Const cRunIntervalSeconds = 120...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,626
精华内容 1,450
关键字:

com组件vba