精华内容
下载资源
问答
  • Excel VBA编程

    千次阅读 2020-11-19 15:22:16
    8 1 概述 VBA使用编程的方式操作Excel的工作簿,工作表sheet,行row,列column,区域range,单元格cells等的值与属性。 2 基本语法 2.1 字母打头,由字母、数字和下划线组成 2.2 数据类型 包括String,Byte,...

                                                2020年11月17日

                                               sf2gis@163.com

     

    目录

    1       概述. 2

    2       基本语法. 2

    3       窗体控件. 4

    4       工作簿控制. 5

    5       操作流程. 6

    6       实例:在身份证和公司表中,查找指定名字和工号的人员,返回公司名字和身份证号。. 8

     

     

    1 概述

    VBA使用编程的方式操作Excel的工作簿,工作表sheet,行row,列column,区域range,单元格cells等的值与属性。

    2 基本语法

    2.1 字母打头,由字母、数字和下划线组成

    2.2 数据类型

    包括String,Byte,Boolean,Integer,Long,Single,Double,Date,Currency,Decimal,Variant,Object,可以采用变体型。

    2.3 变量声明

    Dim name As String '定义姓名,用于在循环时将同一姓名的数据纳入一张表中

    name = "张三"

    2.4 常量声明:const

    2.5 数组:dim a(行,列) as 类型

    2.6 多行语句:用:分割

    2.7 逻辑语句:if,for,Goto

    2.8 sub过程:不返回值

    2.9 function 函数:可以返回值

    2.10 字符串操作:&强制连接,+同类型连接。

    sheetComID.Cells(8, "B").Value = R & "," & Cl

    2.11 with:对象引用,简化语法。

    With sheetComID.Range("A1:E100")

    Set C = .Find(name, LookIn:=xlValues) '查找值

    End With

    3 窗体控件

    3.1 添加控件

    开发工具-》插入-》控件。

    表单控件:整体控制,直接操作单元格或宏,不能关联事件。

    ActiveX控件:表单控制,关联事件。

    4 Excel表格元素控制

    4.1 工作簿控制:Workbooks

    4.2 工作表控制:Worksheets

    4.3 单元格操作:Cells

    4.4 单元格区域操作:Range

     

    5 操作流程

    5.1 进入设计模式

    打开开发工具-》选择设计模式

    5.2 添加ActiveX控件

    点击工具栏插入-》选择ActiveX-》点击第一个按钮-》在表格上画出按钮。

    5.3 双击按钮-》进入编程模式

    当在表格点击此按钮时,就可以编写程序了。

    在编程界面写下如下:将第3行,第1列的值修改为abc123

    Worksheets(1).Cells(3, 1) = "abc123"

    5.4 执行程序

    取消设计模式-》点击按钮-》(3,A)就编程abc123了。

     

    6 实例:在身份证和公司表中,查找指定名字和工号的人员,返回公司名字和身份证号。

    Private Sub CommandButton2_Click()

    Dim name As String '定义姓名,用于在循环时将同一姓名的数据纳入一张表中

    name = "张三"

    Dim no As String

    no = "0119"

     

    Dim sheetComID As Excel.Worksheet '指定要操作的sheet表格:身份证公司

    Dim C As Excel.Range

    Set sheetComID = ThisWorkbook.Sheets("身份证公司")

    Set C = sheetComID.Range("A1:E10").Find("徐佳")

    Dim R As Long

    Dim C1 As Long

     

    Dim company As String '公司名

    company = ""

    Dim id As String '身份证号

    id = ""

     

    '查找第一个姓名和工号相符的项

    With sheetComID.Range("A1:E100")

    Set C = .Find(name, LookIn:=xlValues) '查找值

    Do While Not C Is Nothing '循环查找

    R = C.row '返回行

    If sheetComID.Cells(R, "A").Value = no Then

    company = sheetComID.Cells(R, "C").Value '公司名

    id = sheetComID.Cells(R, "D").Value '身份证号

    sheetComID.Cells(R + 8, "C").Value = company

    sheetComID.Cells(R + 8, "D").Value = id

    Exit Do

    End If

    Set C = .FindNext(C)

    Loop

    End With

    End Sub

     

    展开全文
  • CorelDRAW VBA编程教程

    热门讨论 2013-10-13 16:17:52
    文档介绍得比较详细,开发实例讲解很到位。有兴趣的值得深入
  • Office编程百宝箱29.0,简称VBA百宝箱。为Office编程国产首款超大型插件,原创30多个功能宝贝。所有功能通用于Excel、Word、PowerPoint、Outlook、Access、Publisher、Project、Office全家福。适用于微软Office2003...
  • 原创Office编程百宝箱,集30多个VBA开发功能,为广大VBA编程爱好者的福音与必备利器。轻松实现一键关机、一键开机、锁机待机等。由全球顶尖级水平微软MVP专家与财会管理信息团队历时多年开发,是与OFFICE用户与爱好...
  • 函数代码: (ALT+F11快速进入宏编辑) Public Sub Demo1() Rem|"视图-此处为第一种注释方法" ' Load UserForm1 加载窗口UserForm1-此处为第二种注释方法 Load UserForm1 If ActiveWindow.ActiveView...

    函数代码: (ALT+F11快速进入宏编辑)

    Public Sub Demo1()
    Rem|"视图-此处为第一种注释方法"
    ' Load UserForm1 加载窗口UserForm1-此处为第二种注释方法
     Load UserForm1
       If ActiveWindow.ActiveView.Type = cdrEnhancedView Then
          UserForm1.Text = "Enhanced"
       ElseIf ActiveWindow.ActiveView.Type = cdrNormalView Then
          UserForm1.Text = "Normal"
       ElseIf ActiveWindow.ActiveView.Type = cdrWireframeView Then
          UserForm1.Text = "Wireframe"
       ElseIf ActiveWindow.ActiveView.Type = cdrSimpleWireframeView Then
          UserForm1.Text = "Simple Wireframe"
       ElseIf ActiveWindow.ActiveView.Type = cdrEnhancedViewWithOverprints Then
          UserForm1.Text = "Enhanced WithOverprints"
       Else
          UserForm1.Text = "Draft"
    '此处结束If语句判断
       End If
    '显示(名称)为UserForm1的窗口
      UserForm1.Show
    '函数结束语
    End Sub

    窗口效果图: 

    查看窗口代码: 

    Private Sub Bt1_Click()
    '赋值视图类型
    ActiveWindow.ActiveView.Type = cdrSimpleWireframeView
    MsgBox "简单线框"
    '给文本框赋值
    Text.Text = "Simple Wireframe"
    '刷新显示
    UserForm1.Repaint
    End Sub
    
    Private Sub Bt2_Click()
    ActiveWindow.ActiveView.Type = cdrWireframeView
    MsgBox "线框"
    Text.Text = "Wireframe"
    '刷新显示
    UserForm1.Repaint
    End Sub
    
    Private Sub Bt3_Click()
    ActiveWindow.ActiveView.Type = cdrDraftView
    MsgBox "草稿"
    Text.Text = "Draft"
    '刷新显示
    UserForm1.Repaint
    End Sub
    
    Private Sub Bt4_Click()
    ActiveWindow.ActiveView.Type = cdrNormalView
    MsgBox "正常"
    Text.Text = "Normal"
    '刷新显示
    UserForm1.Repaint
    End Sub
    
    Private Sub Bt5_Click()
    ActiveWindow.ActiveView.Type = cdrEnhancedView
    MsgBox "增强"
    Text.Text = "Enhanced"
    '刷新显示
    UserForm1.Repaint
    End Sub
    
    Private Sub Bt6_Click()
    ActiveWindow.ActiveView.Type = cdrEnhancedViewWithOverprints
    MsgBox "使用叠印增强"
    Text.Text = "Enhanced WithOverprints"
    '刷新显示
    UserForm1.Repaint
    End Sub

     到绘图界面运行宏名称为Demo1的宏

    效果图:

    …………………………………………………………4:46继续更新

    展开全文
  • 《Excel疑难千寻千解丛书:Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发...
  • 因为GMS插件是由VBA编程语言编写的,这门语言是很简单的一门语言,在WORD、EXCEL中很常见(比如宏,就是VBA编写的)。微软的WORD、EXCEL,最初就是VB语言编写的。 本文内容概念性内容较多,为了方便读者理解,博主...

    在上篇文章中,对GMS做了简单的介绍和演示。本文进一步探讨编写GMS插件必不可少的技能,即VBA语言。因为GMS插件是由VBA编程语言编写的,这门语言是很简单的一门语言,在WORD、EXCEL中很常见(比如宏,就是VBA编写的)。微软的WORD、EXCEL,最初就是VB语言编写的。

    本文内容概念性内容较多,为了方便读者理解,博主穿插了一些GIF动态图,帮助读者理解相关内容。

    什么是VBA?

    VBA,英文全称是 Microsoft Visual Basic for Applications,它是微软提供的一个内置的编程环境,可以用来自动化重复的功能,并在支持它的软件中创建智能解决方案。VBA是Microsoft Visual Basic (VB)对象驱动编程环境的一个子集。通常,VBA集成到另一个应用程序中,以定制该应用程序中的功能。

    VBA语言只能集成在某个软件环境中运行,被集成的软件一般称作宿主程序。比如CDR,就自带了VBA环境,可以通过运行VBA代码来操作CDR中的文档、页面、图层、形状、颜色、填充等等。

    在CDR中,要查看是否安装了VBA模块,可以通过 工具 -> 选项 菜单,观察是否有VBA选项,如下图所示(下面的截图表示VBA是正常安装的,相关按钮可以点击):

    VBA既是一种语言也是一种编辑器。VBA语言不能在没有编辑器的情况下使用,VBA编辑器是唯一可以编辑VBA代码或运行VBA程序的工具。

    VBA是一种过程自动化控制器。换句话说,VBA可以用来控制可以自动化的软件特性,并且VBA可以通过绕过进程间同步机制有效地运行。然而,过程中VBA可以访问的自动化也可以通过以下方式访问:

    • 外部进程外自动化控制器(OLE客户端)。
    • 使用编程语言(如VB、Visual c++、Windows Script Host和c++)开发的应用程序,可用于开发OLE客户端。
    • 其他应用程序的VBA引擎。

    VBA的事件驱动机制

    VBA语言是一种事件驱动的编程语言。换句话说,它用于编写对操作产生响应的代码,例如单击按钮或从列表框中选择一个选项。当操作发生时,将调用相应的事件,并执行该事件的代码。事件可以简单也可以复杂。例如,可以编写显示消息框的单行代码,也可以编写与数据库交互的整个过程。

    所谓事件驱动编程,其实很简单,举个例子就是,当你点击了按钮,发生了按钮被单击这个事件,在这个事件中,你可以弹出一个消息框,这就是事件驱动编程,如下图所示:

    什么是VBA编辑器(宏编辑器)?

    VBA编辑器 —— 在CorelDRAW中称为“宏编辑器”(以前是“Visual Basic编辑器”) —— 它是一个集成开发环境(IDE),允许您操作由应用程序的对象模型公开的对象。为了帮助您编写宏,宏编辑器为您可用的所有对象模型元素提供上下文敏感的帮助。

    在CDR中,宏编辑器可以通过工具菜单进入,前提是你的CDR安装了VBA模块,否则可能相关的按钮是灰色不可点击的。宏编辑器如下所示:

    关于VBA宏编辑器的详细介绍,因篇幅可能较多,将在下篇文章中详细介绍编辑器各个部分的功能和使用说明,帮助读者掌握宏编辑器的使用。

    VBA的优点

    VBA提供了一套工具,用于定制软件的图形用户界面。这些工具使您能够高效地处理和显示数据。使用VBA的优点包括:

    • 和VB语言相似,易于上手开发
    • 快速应用程序开发(RAD) IDE
    • 所产生的集成解决方案的快速运行时性能
    • 支持ActiveX控件创建用户界面的可扩展表单包
    • 访问完整的Windows应用程序编程接口(API)和底层文件系统
    • 连接到公司数据库
    • 与基于组件对象模型(COMs)的其他软件的集成

    VBA允许您定制应用程序以满足您的需求,甚至可以通过引用第二个应用程序的对象模型组件将其与另一个启用VBA的应用程序集成。尽管VBA是由微软开发的,并且内置在几乎所有的桌面应用程序中(包括Microsoft Office),微软将这项技术授权给其他公司(包括Corel Corporation;Autodesk, Inc.,在AutoCAD;以及IntelliCAD技术联盟(IntelliCAD)。支持VBA的软件产品通常可以用来相互控制,它们甚至可以用来控制一些不支持VBA的软件产品。因此,您可以使用VBA在CorelDRAW中构建能够访问各种其他软件产品的解决方案:数据库、文字处理程序、XML编辑器等等。

    有关支持VBA的完整应用程序列表,请参见Microsoft网站。

    VBA与VB和VBScript有何不同?

    VB编程系统是一套高级编程工具,为Windows操作系统和其他基于Windows的程序提供高级功能和组件。例如,与VBA或VBScript不同,VB允许您创建应用程序扩展(DLL文件)和独立的可执行程序(EXE文件)。(使用VBA创建的程序必须在主机应用程序中运行。)

    VB是BASIC编程语言的“可视化”版本——也就是说,它在编辑器中提供了可视化提示。因此,VB是一种容易学习的语言。此外,微软极大地增强了原来的BASIC语言,因此VB既强大又快速(尽管不如Java或c++强大,也不如C快)。

    VBA是VB编程语言的一个子集,它使用VB的编程结构来操作由应用程序公开的对象模型元素。对这些对象的操作在应用程序中产生小的代码过程包。这些代码过程和结果项目称为“加载项”。

    VBScript(有时称为Microsoft Visual Basic,脚本版)也是VB编程语言的一个子集。VBScript是一种基于web的HTML文档脚本语言。

    VBA与Java和JavaScript有何不同?

    VBA类似于Java和JavaScript,因为它是一种高级的过程式编程语言,具有完整的垃圾收集和很少的内存指针支持。(有关更多信息,请参见分配内存。)此外,用VBA开发的代码,很像用Java和JavaScript开发的代码,支持按需编译,无需编译即可执行。

    VBA也类似于JavaScript,因为它不能作为一个独立的应用程序执行。JavaScript作为一种操作Web浏览器的文档对象模型(DOM)的机制嵌入到Web页面中。同样,VBA程序在宿主环境(如CorelDRAW)中执行,以操作宿主的对象模型。

    大多数VBA应用程序可以被编译成p-code,以使它们运行得更快,尽管由于当今计算机硬件的复杂性,这种差别很难被注意到。Java也可以进行类似的编译,但JavaScript不行。

    最后,VBA使用单个等号(=)进行比较和赋值,Java和JavaScript使用单个等号(=)进行赋值,两个等号(==)用于布尔比较。(有关更多信息,请参见使用布尔比较和赋值。)

    VBA与C和C++有何不同?

    像C和C++一样,VB也使用函数。在VB中,函数可以用来返回值,但是子例程不能这样使用。然而,函数在C和C++中使用,无论您是否希望返回值。(有关更多信息,请参见使用函数和子例程。)

    VBA透明地分配和释放内存。然而,在C和C++中,开发人员负责大部分内存管理。因此,在VBA中使用字符串甚至比在C++中使用CString类更简单。

    最后,VBA使用单个等号(=)进行比较和赋值,C和C++使用单个等号(=)进行赋值,两个等号(==)进行布尔比较。(有关更多信息,请参见使用布尔比较和赋值。)

    VBA和WSH有什么不同?

    Windows Script Host (WSH)是一个进程外自动化控制器,允许您执行Windows任务的偶尔脚本编写和自动化,并可用于控制软件。尽管WSH是Windows操作系统的一个有用的补充,但WSH脚本往往很慢,因为它们必须在进程耗尽时运行,而且不能编译(并且必须在执行时解释)。

    WSH是许多脚本语言的宿主,每种语言都有自己的语法。然而,WSH使用的标准语言是一种类似于VB的宏语言,因此对于标准脚本,其语法与VBA相同。

    展开全文
  • 《Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。...
  • 《Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。...
  • VBA在Excel中的插件制作

    千次阅读 2017-11-14 16:16:00
    VBA在Excel中的插件制作 步骤1: 在Excel工具栏的开发工具中启动Visual Basic,进入宏编辑页面如图1: 在VBA Project中右键插入模块,命名为自定义功能区,写好的VBA代码就可以写入右边的白色框框中。 步骤2:...

    VBA在Excel中的插件制作

    步骤1:

    在Excel工具栏的开发工具中启动Visual Basic,进入宏编辑页面如图1:

    在VBA Project中右键插入模块,命名为自定义功能区,写好的VBA代码就可以写入右边的白色框框中。

    步骤2:

    再插入一个模块,命名为回调,用来调用功能区中的命令,格式如下:

    Sub ts(control As IRibbonControl)

    If control.ID = "but1" Then

    Call 插入批注图片

    ElseIf control.ID = "but2" Then

    Call 匹配图片

    ……

    ……

    ……

    End If

    End Sub

    开始和结束语不变,中间的写入格式ElseIf control.ID = "but2" Then  Call 匹配图片,有多少个命令就需要多少个but回调按钮,call后面连接的功能名跟自定义功能区里面的功能名称需要一致,不然回调不成功。

    步骤3:

    写好自定义功能区和回调内容后关闭Excel文件,单击Excel文件右键,用WinRAR压缩文件打开,其中有一个文件名为customUI的文件,打开后,用记事本打开customUI.xml文件,写入代码:

     

    写完后保存,关闭

    步骤4:

    重新用Excel打开刚才的文件,另存为Excel加载宏(*.xlam)文件,保存路径会默认的。

    然后再Excel工具栏中的开发工具中的Excel加载项中可以看到刚刚保存的文件,将前面的空格中打钩即可启用。在后续的Excel打开文件中即可看到命名为XXJ的工具栏。

    步骤5:

    也可以添加启功功能,前提是在自定义功能区中有启功的命令。打开Excel的其他命名,在此下拉框中选择宏,将宏下面的启动项选入右边的框框中,启动项的图标可以自主设计,如√即可

    备注:做好的插件文档见幸福生活群中的XXJ7.1.xlsm  图标见excel内置图标.xlsm

    转载于:https://www.cnblogs.com/wulu80261647/p/7833135.html

    展开全文
  • 要注意的是,wps要用专用的vba插件,可以在网上进行搜索,最新的好像是7.0的。 wps的vba插件 下载后,安装都是傻瓜式的,一路点击“下一步”就可以完成了。重新打开wps就可以看到“开发工具”选项卡处的几个按钮都变...
  • VBA编辑器插件的安装 1、首先需要安装 Package Control。 2、打开命令面板(Command Palette)Ctrl+Shift+P,输入 Install Package 然后回车。Install Package打开后再输入VBScript,回车。即可完成VBA编辑器插件的...
  • 通过vba中的循环和数组实现的匹配函数,可以帮助新入门的同学学习VBA程序,同时也希望各位大神指导,如何写出更简单高效的代码。
  • Excle也能编程-VBA小工具

    千次阅读 2017-02-06 23:40:50
    工作中有用到,就学习了一下VBA编程。发现这个真的可以使得Excle工作效率倍增。 工作需求,为照片粘贴档案条。需要将一条条数据,转换为小纸片并且按照特殊样式排序。 完成后像这样其实要完成这个还是比较简单的。...
  • Office的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VBScript指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如...
  • VBA For WPS 2019.zip

    2019-03-09 20:02:59
    wps2019最新版 宏编程插件,内附安装方法,完整版,所有东西都有。
  • WPS 中没有启动宏,可能通过安装VBA 宏模块启用宏,安装后再打开就会有提示启用和禁用宏。
  • 让wps支持vba

    2013-04-03 19:52:26
    从Microsoft Shared和SYSTEM32中提取vba及其依赖的基本文件,复制并设置注册表后, 即可让WPS 2012使用VBA7。 运行批处理脚本SET.BAT可自动复制和设置。在WIN XP中双击SET.BAT即可。在Win7中, 需在SET.BAT上点...
  • Office插件开发-为Outlook添加Ribbon按钮源代码(版权私有,可以使用源码,但是禁止转载)
  • 第4部分引领读者运用已有的VBA能力,转向VBA的专业开发,讲述了插件开发的相关知识,如何为插件创建传统的工具栏和菜单等。 《PPT新视角——VBA应用技术》既包括了传统VBA技术的应用,又包括了众多VBA突破性技术,...
  • 本书是“excel疑难千寻千解”丛书之一,为读者展示vba编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。本书侧重于“解决问题”,主要展示...
  • 话说我们有一个完整的VBA小代码系列,包含了多表汇总,总表拆分,图片导入等常见问题处理。后台回复关键字常用代码即可获取。但总会有朋友询问VBA代码如何使用,这里就先聊一下。举个例子。比如下面这段代码,作用是...
  • VBA API详解

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

    2019-10-02 03:16:07
    基于VS 2005环境的MS office自动化开发之熟悉...进行MS office自动化开发最好的工具或许是VBA,但是很多时候我们的应用系统往往和MS office的文件打交道,比如生成word文件和EXCEL报表等等,因此学习一下主流的开...
  • Excel VBA(WPS专业版)安装及代码编写

    万次阅读 多人点赞 2018-04-14 11:37:29
    > 以前用的wps是需要自己单独再安装vba插件的,现在更新的wps都是自带vba的,在菜单栏>开发工具可以看到,因而这里简单给出wps版本的说明 > 此次更新将在wps2019教育版上重新做一遍,耗时巨大; 时隔两年,已经做了...
  • CorelDRAW X7 官方帮助文档(参考手册)。手册为原生英文版本,主要包含自动化、宏、CQL查询介绍、对象和类属性、方法参考等内容。不管是使用VBA开发GMS插件,还是用C++开发CPG插件,这个手册都可以提供对象参考。
  • WPS EXCEL中的VBA编程

    千次阅读 2013-09-11 17:47:52
    近日,由于某些原因,公司部分微软office被卸载了,装上了wps。...我安装了wps2013个人版+vba插件。 1,问题描述  Set MyPivotTable = MyPivot.PivotTableWizard(SourceType:=xlDatabase, SourceD
  • EXCEL VBA股票模拟交易系统

    热门讨论 2013-03-25 00:56:54
    利用EXCEL VBA编程模拟股票交易系统,含有4个交易策略,都有解释说明
  • 如果读者同时购买《Excel 2013 VBA编程与实践》、《Excel VBA程序开发自学宝典(第3版)》和 ║ ║ 《Excel 2016实用技巧自学宝典》、《Excel VBA与VSTO基础与实战指南 》4本中的任意3本书(需提供 ║ ║ 购买凭证)...
  • 第4部分引领读者运用已有的VBA能力,转向VBA的专业开发,讲述了插件开发的相关知识,如何为插件创建传统的工具栏和菜单等。 《PPT新视角——VBA应用技术》既包括了传统VBA技术的应用,又包括了众多VBA突破性技术,...

空空如也

空空如也

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

vba插件编程