2018年8月9日,星期四
陈仓-王彦成功验证以下在VSTO中制作的COM加载项,可在VB或VBA中调用:具体方法:
一、在VSTO中创建COM类:
1.在VSTO中“新建项目——VisualBasic——类库”,名称改为Cwy1,生成Cwy1项目。
2.选中新生成的类文件“Class1.vb”,右键选“删除”,确认将其删除。
3.选中Cwy1项目名,在“项目”菜单选择“添加新项——常用项——COM 类”,名称改为ccwy,生成“ccwy.vb”类。
4.在ccwy.vb类中创建以下公共类函数(过程):
Public Sub xs()
MsgBox("╭⌒╮⌒╮︸︷﹀︿" & vbLf & _
"╱◥██◣Home ﹀︷︸" & vbLf & _
"|田|田田|﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏" & vbLf & _
"╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬" & vbLf & vbLf & _
"输入值不是1或2,程序正在退出……", vbOKOnly, " 错误信息提示:")
End Sub
5.在“生成”菜单选“生成Cwy1 (u)”,生成Cwy1.dll加载项文件。
6.把“D:\vsto1\Cwy1\Cwy1\bin\Debug\Cwy1.dll”文件拷贝至安装目录。
二、打开Excel2010,在VBE中创建模块1,顶部定义公共变量SYS2:
Public sys2 As Object
三、在VBE模块1中创建过程(或单击事件过程),其中调用COM加载项:
Private Sub CommandButton7_Click()
Set sys2 = CreateObject("https://www.sodocs.net/doc/e79906073.html,wy") '创建类实例
Call sys2.xs
End Sub
四、注册Cwy1.dll类。创建install.bat注册批命令文件,并执行安装文件,文件内容:
set p=Cwy1
set w=c:\Windows\
copy %p%.dll %w%%p%.dll
C:\Windows\https://www.sodocs.net/doc/e79906073.html,\Framework\v4.0.30319\RegAsm.exe %w%%p%.d ll /tlb:%w%%p%.tlb /codebase
Pause
Cwy1.dll类和注册安装文件install.bat应放置在同一个安装目录下,运行后自动安装并注册,然后就可以在VB或VBA中随时调用了。
VSTO与VBA的差异
1.VSTO中取消了Currency类型,Currency类型—→Double;
2.Arr2()类型—→Object(),即数组;VSTO中Short—→Integer;Integer—→int32;Long—→int64,取消Variant,Variant—→Object。
3.Application—→app;如Application.ScreenUpdating—→app.ScreenUpdating;
4.数组:VB.NET提供了Ubound()和Lbound()两个函数来返回数组的上、下界。如:one=Ubound(arrayl) 。对于多位数组,也仅仅是简单地将逗号后面的第二个參数指定为数组的第几维,比如:tw0=Lbound(multidim,7) ,假设没有指明是哪一维,系统默认是第一维。动态数组:定义Dim types( ) As integer 或Dim array2 As Integer(,),然后使用ReDim语句来配置数组大小。如 Redim array2(3,3),ReDim语句声明仅仅能在过程其中使用,它是可运行语句,能够改变数组中元素的个数,可是却不能够改变数组的维数,就是说不能把一维变为二维。在ReDim语句配置数组元素个数时,数组中的内容将所有置为0。典型语句为:ReDim Types(X+1),假设想改变数组大小又不想丢失原来的数据,仅仅要在ReDim语句中包括Preserve键值就能够,典型语句如:ReDim Preserve Types(10,23) 或ReDim Preserve x(0, i)。对于多维数组,在使用Preserve时,仅仅能改动最后一维的大小。假设改变其它维,那么将出现执行错误。假设不清楚某维的当前大小,能够使用Length函数来获取。如a.Length可以得到数组a()的元素个数,然后用ReDim Preserve a(a.Length+1)给数组增加1个元素。Redim会消除数组中所有的值。如果要保护这些值,请使用Preserve关键字:Redim Preserve P(Ubound(P)+1),如果数组是多维的,Redim可以改变任意一维的上界,Redim Preserve只能改变最后一维的上界:Redim K(1,3) '对,Redim K(2,3) '对,Redim Preserve K(2,4) '对,Redim Preserve K(3,4) '错。
PCB封装大全 2009-12-27 21:14 贴片电阻 0603表示的是封装尺寸与具体阻值没有关系但封装尺寸与功率有关通常来说0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W 电容电阻外形尺寸与封装的对应关系是: 0402=1.0x0.5 0603=1.6x0.8 0805=2.0x1.2 1206=3.2x1.6 1210=3.2x2.5 1812=4.5x3.2 2225=5.6x6.5 现将常用的元件封装整理如下: 电阻类及无极性双端元件 AXIAL0.3-AXIAL1.0 无极性电容 RAD0.1-RAD0.4 有极性电容 RB.2/.4-RB.5/1.0 二极管DIODE0.4及DIODE0.7 石英晶体振荡器 XTAL1 晶体管、FET、UJT TO-xxx(TO-3,TO-5) 可变电阻(POT1、POT2) VR1-VR5
protel元器件封装大全 2009-07-05 14:09 元件代号封装备注电阻 R AXIAL0.3 电阻 R AXIAL0.4 电阻 R AXIAL0.5 电阻 R AXIAL0.6 电阻 R AXIAL0.7
电阻 R AXIAL0.8 电阻 R AXIAL0.9 电阻 R AXIAL1.0 电容 C RAD0.1 方型电容电容 C RAD0.2 方型电容电容 C RAD0.3 方型电容电容 C RAD0.4 方型电容电容 C RB.2/.4 电解电容电容 C RB.3/.6 电解电容电容 C RB.4/.8 电解电容电容 C RB.5/1.0 电解电容保险丝FUSE FUSE 二极管 D DIODE0.4 IN4148 二极管 D DIODE0.7 IN5408 三极管 Q T0-126 三极管Q TO-3 3DD15 三极管Q T0-66 3DD6 三极管Q TO-220 TIP42 电位器VR VR1 电位器VR VR2 电位器VR VR3 电位器VR VR4 电位器VR VR5 元件代号封装备注 插座 CON2 SIP2 2脚 插座 CON3 SIP3 3 插座 CON4 SIP4 4 插座 CON5 SIP5 5 插座 CON6 SIP6 6 插座 CON16 SIP16 16 插座 CON20 SIP20 20 整流桥堆D D-37R 1A直角封装 整流桥堆D D-38 3A四脚封装 整流桥堆D D-44 3A直线封装 整流桥堆D D-46 10A四脚封装 集成电路U DIP8(S) 贴片式封装 集成电路U DIP16(S) 贴片式封装 集成电路U DIP8(S) 贴片式封装 集成电路U DIP20(D) 贴片式封装 集成电路U DIP4 双列直插式 集成电路U DIP6 双列直插式 集成电路U DIP8 双列直插式 集成电路U DIP16 双列直插式 集成电路U DIP20 双列直插式
1 颜色选择器
PCB封装大全 电位器:pot1,pot2;封装属性为vr-1到vr-5 二极管:封装属性为diode-0.4(小功率)diode-0.7(大功率) 三极管:常见的封装属性为to-18(普通三极管)to-22(大功率三极管)to-3(大功率达林顿管) 电源稳压块有78和79系列 78系列如7805,7812,7820等 79系列有7905,7912,7920等 常见的封装属性有to126h和to126v 整流桥:BRIDGE1,BRIDGE2: 封装属性为D系列(D-44,D-37,D-46) 电阻:AXIAL0.3-AXIAL0.7 其中0.4-0.7指电阻的长度,一般用AXIAL0.4 瓷片电容:RAD0.1-RAD0.3。其中0.1-0.3指电容大小,一般用RAD0.1 电解电容:RB.1/.2-RB.4/.8 其中.1/.2-.4/.8指电容大小。一般<100uF用RB.1/.2,100uF-470uF用RB.2/.4,>470uF用RB.3/.6 二极管:DIODE0.4-DIODE0.7 其中0.4-0.7指二极管长短,一般用DIODE0.4 发光二极管:RB.1/.2 集成块:DIP8-DIP40, 其中8-40指有多少脚,8脚的就是DIP8 贴片电阻 0603表示的是封装尺寸与具体阻值没有关系但封装尺寸与功率有关通常来说 0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W
电容电阻外形尺寸与封装的对应关系是: 0402=1.0x0.5 0603=1.6x0.8 0805=2.0x1.2 1206=3.2x1.6 1210=3.2x2.5 1812=4.5x3.2 2225=5.6x6.5 关于零件封装我们在前面说过,除了DEVICE。LIB库中的元件外,其它库的元件都已经有了固定的元件封装,这是因为这个库中的元件都有多种形式:以晶体管为例说明一下: 晶体管是我们常用的元件之一,在DEVICE。LIB库中,简简单单的只有NPN 与PNP之分,但实际上,如果它是NPN的2N3055那它有可能是铁壳子的TO—3,如果它是NPN的2N3054,则有可能是铁壳的TO-66或TO-5,而学用的CS9013,有TO-92A,TO-92B,还有TO-5,TO-46,TO-52等等,千变万化。 还有一个就是电阻,在DEVICE库中,它也是简单地把它们称为RES1和RES2,不管它是100Ω还是470KΩ都一样,对电路板而言,它与欧姆数根本不相关,完全是按该电阻的功率数来决定的我们选用的1/4W和甚至1/2W的电阻,都可以用AXIAL0.3元件封装,而功率数大一点的话,可用AXIAL0.4,AXIAL0.5等等。现将常用的元件封装整理如下: 电阻类及无极性双端元件 AXIAL0.3-AXIAL1.0 无极性电容 RAD0.1-RAD0.4 有极性电容 RB.2/.4-RB.5/1.0 二极管 DIODE0.4及 DIODE0.7 石英晶体振荡器 XTAL1 晶体管、FET、UJT TO-xxx(TO-3,TO-5) 可变电阻(POT1、POT2) VR1-VR5
漫游于网络之间,你会发觉,因特网不但是信息的海洋,也是广告的海洋。除了普通的Gif Banner、Flash外,浮动广告也是时下网上较为流行的广告形式之一。当你拖动浏览器的滚动条时,这种在页面上浮动的广告,可以跟随屏幕一起移动。尽管这种效果对于广告展示有相当的实用价值,但对浏览你网页的人来讲,这则是个既妨碍阅读,又影响阅读兴趣的东西,因此一定不能滥用。不过,如果你能善用的话,它就能发挥出极大的作用。 要做出浮动式广告的效果并不困难,如果你有JS基础的可以自己写一个,如果连写都懒得写的话,到网上下载一个特效工具,按提示粘贴一下代码就OK。不过,想要真正了解它是怎样做出来的,则需要掌握一些JS知识了。这里向大家介绍一下简单的浮动广告做法。 以下这段代码可放在
之间,其间我加入了一些注释(即“//”后的文字及“”之间的文字)。 2. var sObj = null; var mObj = null; function main(){ sObj = new StaticObj(7, -2); sObj.run(); mObj = new MoveObj(); } function windowSizeChanged(){ sObj.resizeEvent(); } function move() { var top= document.body.scrollTop;