实例1:处理NewWorkbook和WorkSheet事件的控制台程序 书本第70页

程序清单 4.1 处理NewWorkbook和WorkSheet事件的控制台程序

Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms Module Module1 Private WithEvents app As Excel.Application
Private WithEvents workbook As Excel.Workbook
Private exitXL As Boolean = False Sub Main()
app = New Excel.Application()
app.Visible = True ' We cast to AppEvents_Event when adding an event handler
' dynamically using AddHandler because NewWorkbook
' is the name of both a property and an event.
AddHandler CType(app, Excel.AppEvents_Event).NewWorkbook, _
AddressOf App_NewWorkbook workbook = app.Workbooks.Add() While exitXL = False
System.Windows.Forms.Application.DoEvents()
End While app.Quit()
End Sub
Private Sub App_NewWorkbook(ByVal workbook As Excel.Workbook)
Console.WriteLine(String.Format( _
"Application.NewWorkbook({0})", workbook.Name))
End Sub Private Sub App_WorkbookNewSheet(ByVal workbook As _
Excel.Workbook, ByVal sheet As Object) _
Handles app.WorkbookNewSheet If TypeOf sheet Is Excel.Worksheet Then
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format( _
"Application.WorkbookNewSheet({0},{1})", _
workbook.Name, worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format( _
"Application.WorkbookNewSheet({0},{1})", _
workbook.Name, chart.Name))
End If End Sub Private Sub Workbook_NewSheet(ByVal sheet As Object) _
Handles workbook.NewSheet If TypeOf sheet Is Excel.Worksheet Then
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format( _
"Workbook.NewSheet({0})", worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format( _
"Workbook.NewSheet({0})", chart.Name))
End If End Sub Private Sub Workbook_BeforeClose(ByRef cancel As Boolean) _
Handles workbook.BeforeClose exitXL = True End Sub End Module

实例代码:

Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms Module Module1 Private WithEvents app As Excel.Application
Private WithEvents workbook As Excel.Workbook
Private WithEvents worksheet As Excel.Worksheet
Private exitXL As Boolean = False Sub Main()
app = New Excel.Application()
app.Visible = True
'由于NewWorkbook既是事件名又是属性名,所以我们用AddHandler语句动态地添加事件句柄,“Addhandler [Event], addressof [Sub or Function]”
AddHandler CType(app, Excel.AppEvents_Event).NewWorkbook, AddressOf App_NewWorkbook '运行App_NewWorkbook方法
workbook = app.Workbooks.Add()
worksheet = app.Worksheets.Add()
While exitXL = False
System.Windows.Forms.Application.DoEvents()
End While
app.Quit()
End Sub
Private Sub App_NewWorkbook(ByVal workbook As Excel.Workbook) '方法名
Console.WriteLine(String.Format("Application.NewWorkbook({0})", workbook.Name))
End Sub Private Sub App_WorkbookNewSheet(ByVal workbook As Excel.Workbook, ByVal sheet As Object) Handles app.WorkbookNewSheet '对象_事件 If TypeOf sheet Is Excel.Worksheet Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是工作表
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format("Application.WorkbookNewSheet({0},{1})", workbook.Name, worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是透视表
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format("Application.WorkbookNewSheet({0},{1})", workbook.Name, chart.Name))
End If End Sub Private Sub Workbook_NewSheet(ByVal sheet As Object) Handles workbook.NewSheet '对象_事件 If TypeOf sheet Is Excel.Worksheet Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是工作表
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format("Workbook.NewSheet({0})", worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then ''typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是透视表
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format("Workbook.NewSheet({0})", chart.Name))
End If End Sub Private Sub Workbook_BeforeClose(ByRef cancel As Boolean) Handles workbook.BeforeClose '对象_事件 exitXL = True End Sub End Module

实例效果:

VSTO开发指南(VB2013版) 第四章 Excel编程的更多相关文章

  1. VSTO开发指南(VB2013版) 第一章 Office对象模型

    完美地将visual basic和office 办公软件结合起来.来自微软公司VSTO小组的权威专家所编著. 全书共712页,内容极其全面而深入,猛一看,厚地犹如庞然大物.看完离大神就不远了哦< ...

  2. Gradle 1.12用户指南翻译——第二十四章. Groovy 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  3. Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

    摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...

  4. VSTO开发指南(VB2013版) 第三章 Excel编程

    通过前两章的内容,有了一定的基础,但进入第三章,实例的步骤非常多,并且随着VS版本的升级,部分功能菜单界面发生了很大变化,所以,第三章的案例我将逐步编写! 实例3.1的目标就是给Excel写一个加载宏 ...

  5. VSTO开发指南(VB2013版) 第二章 Office解决方案介绍

    实例2.1 通过控制台实现对Excel的自动化处理 书本第32页 注:添加两个引用: 第一个:程序集—框架—“System.Windows.Forms 4.0.0.0”第二个:程序集—扩展—“Micr ...

  6. C++PrimerPlus第6版 第四章——复合类型

    1,复合类型主要包含:数组.结构.联合.枚举.类.指针.引用等. 2,数组.长度必须确定.即编译阶段,数组的长度就得确定好.所以只能使用常量(#define.const)声明数组长度.如果使用变量声明 ...

  7. Java 线程第三版 第四章 Thread Notification 读书笔记

    一.等待与通知 public final void wait() throws InterruptedException      等待条件的发生. public final void wait(lo ...

  8. C#高级编程第11版 - 第四章 索引

    [1]4.2 继承的类型 1.C#不支持类的多继承,但它支持一个接口继承自多个接口. 2.单继承:单继承允许一个类继承自另外一个基类,C#支持. 3.多级继承:多级继承允许创建一个类继承自它的父类,而 ...

  9. 《CoffeeScript应用开发》学习: 第四章-改进应用程序

    检查值是否存在 使用存在运算符 CoffeeScript中有一个非常有用的存在运算符?,它能正确地处理值是否存在(存在的意思为变量不为undefined或者null)的情况.在变量后添加?来判断它是否 ...

随机推荐

  1. Zero down time upgrade with OGG -from 11g to 12c.

    High level steps upgrade from 11g to 12c database: 1)    Check network between source and target. 2) ...

  2. eclipse android ndk开发遇到的问题.

    1. error:parameter name omitted 用javah生成的.h文件中,方法是没有指定形参的,实现的时候需要我们在实现的方法定义中加上形参. 2. 'NewStringUTF' ...

  3. Pycharm运行/调试程序说明

    1.字体调整(optional) File -> Settings ->Editor->Colors & Fonts -> Size 22 2.打开程序所在文件夹hw5 ...

  4. Day9-Python3基础-多线程、多进程

    1.进程.与线程区别 2.python GIL全局解释器锁 3.线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Que ...

  5. Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别

    先看两个类的方法: >>> class nc(): def __init__(self): self.name ='tester' #name变量加self >>> ...

  6. git上传本地代码到远程失败

    出现这种错误的原因是由于我不小心勾选了这个

  7. Mavn 项目 引入第三方jar包 导致ClassNotFoundException

    案例 我有一个Maven构建的项目,项目模块之间有依赖关系,我需要用到一个本地的jar包,而该jar包不能通过配置pom.xml文件从远程仓库自动下载,于是我直接导入该jar包到其中一个项目,不通过p ...

  8. 构建一个学生Student,根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

    定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号: sName表示姓名: sSex表示性别: sAge表示年龄: sJava:表示Java课程成 ...

  9. SSL:GoDaddy SSL证书制作和安装

    简介 SSL证书是数字证书的一种类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书.SSL 证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁 ...

  10. 初学maven的一些配置

    初学Maven的一些配置 1.maven的安装 2.从官网下载3.6.1版本后,高级版本可能会出现不兼容 jdk1.8 3.配置maven 在 settings.xml <settings> ...