2010年02月1日, 2:38 下午

Loading ...
据Excel产品团队博客的文章《Programmability Improvements in Excel 2010》,VBA增加了一些新功能。
将Excel 4宏迁移到VBA
在将VBA引入到Excel之前,有自已的宏工具,称之为Excel 4宏,在Excel宏工作表中使用。很多人都早已将他们的Excel 4宏迁移到VBA,然而,一些Excel 4宏的功能在VBA中消失了,这使得迁移发生了困难。
在Excel 2010中,目标是为必须完全将Excel 4宏迁移到VBA中的人移除任何现有的阻碍。这项工作通常分为两类:
- 在Excel的对象模型中添加新的对象、方法和属性,代表一些现有的而在VBA中没有等价的Excel 4宏函数。
- 改进VBA中页面设置操作的性能,提供Excel 4宏中PAGE.SETUP()功能相似的性能。
对图表和形状的宏录制
当Excel 2007引入新的图表引擎时,主要集中在现代化的图表和形状的渲染能力。由于这项工作巨大,因此必须作一些痛苦的取舍决定,这导致Excel 2007在图表和形状对象模型方面失去了与Excel 2003的兼容性,即宏录制能力。
在Excel 2010中,宏录制器又可用于图表格式了,Excel 2003中的绝大多数图表格式录制功能又回来了。(极少数例如,包括坐标轴文本格式)
64位支持和代码兼容性
Office 2010将发布32位版本和64位版本。因此,VBA7将随Office 2010发布,支持能够运行32位和64位Office的代码的开发。
2010年02月1日, 1:56 下午

Loading ...
VBA6已经将近10余年了,而今,VBA7即将到来。
据The official blog of the Microsoft Excel product team的一篇文章:Programmability Improvements in Excel 2010:VBA的新版本——VBA7,将随Office 2010发布,支持能够在32位和64位Office上运行的代码的开发。
VBA7, the new version of VBA that ships with Office 2010, supports the development of code that can run in both 32- and 64-bit Office.
2010年01月26日, 12:53 下午

Loading ...
这是以前收录的一段程序示例:
使用VBA在调用工作簿中打开被调用工作簿,并运行其中的宏。该宏将弹出一个消息框,如果用户没有响应,那么程序会在指定时间后自动响应。
调用工作簿中的程序代码如下:
Public Declare Function SetTimer& Lib "user32" (ByVal hwnd&, _
ByVal nIDEvent&, ByVal uElapse&, ByVal lpTimerFunc&)
Private Declare Function KillTimer& Lib "user32" (ByVal hwnd&, _
ByVal nIDEvent&)
Public Const NV_INPUTBOX As Long = &H5000
Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
SendKeys "%Y"
KillTimer hwnd, idEvent
End Sub
Sub test()
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Dim targetworkbook As Workbook
Dim usersave As VbMsgBoxResult
Set targetworkbook = Workbooks.Open("C:\test2.xls", UpdateLinks:=0)
Calculate
targetworkbook.Activate
SetTimer 0, NV_INPUTBOX, 1000, AddressOf TimerProc
Application.Run targetworkbook.Name & "!tester"
targetworkbook.Activate
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
假设被调用工作簿存储在C盘,工作簿名为test2.xls,那么其中的代码如下:
Sub tester()
TimedMsgBox
End Sub
Sub TimedMsgBox()
Dim cTime As Long
Dim WSH As Object
Set WSH = CreateObject("WScript.Shell")
cTime = 5 '5 秒
Select Case WSH.Popup("Open an Excel file?!", cTime, "Question", vbOKCancel)
Case vbOK
MsgBox "你单击了确定"
Case vbCancel
MsgBox "你单击了取消"
Case -1
MsgBox "超时"
End Select
End Sub
运行调用工作簿中的程序后,被调用的工作簿test2.xls会被打开,并运行其中的程序,该程序会弹出一个消息框,如果用户没有响应该消息框,那么在5秒后,会自动响应,即弹出一个内容为“超时”的消息框。
2010年01月21日, 1:17 下午

Loading ...
今天,给大家分享Jan Karel Pieterse的作品:带有菜单栏的用户窗体。如下图所示。

示例文档下载:
2010年01月20日, 1:00 下午

Loading ...
标签:
Excel图表类型,
XY图,
圆环图,
折线图,
曲面图,
条形图,
柱形图,
气泡图,
股价图,
雷达图,
面积图,
饼图 分类目录:
Excel图表与图形 |
评论 | 368 次阅读