MicroStation VBA基础
实习笔记1
2016年8月1日
14:12
Option Explicit
缺省情况下,如果使用一个没有声明的变量,它将继承“Variant”类型。在模块、窗体和类的通用声明区使用“OptionExplicit”能强制我们必须声明变量后才能使用变量
Sample:
- Option Explicit
- Sub test()
- X =
- End Sub
在通用声明区声明了“Option Explicit”。当试着去运行上述test宏时将得到一个错误
本章回顾
1.在过程、函数或用户窗体事件中写代码
2.在过程和函数中利用必须的和可选的参数
3.函数可返回值、数组、类型和对象
4.在过程和函数中,如果参数声明为“ByRef”,则可以改变作为参数传递进来的变量。把参数声明为“ByVal”将保持变量不变
4.能在过程、函数和事件中或者在通用声明区内声明变量。这些变量的范围依赖于它们在何处被声明以及声明中所用的关键字
第六章 变量
- Option Explicit
- Sub tst()
- TTT =
- MsgBox TTT
- End Sub
- '整型
- Dim PageNumber As Integer
- PageNumber =
- '长整型
- Dim MySalary As Long
- MySalary =
- '双精度型
- Dim HourToLearnVBA As Double
- HourToLearnVBA = 36.25
- Sub VariableTestC()
- Dim N As Double
- N = 1.23456789012346
- N = 12345678901234.6
- End Sub
- '布尔类型
- Dim ICanLearnThis As Boolean
- ICanLearnThis = True
- '日期型
- Dim XMReleaseDate As Date
- XMReleaseDate = "5/19/2006 8:00:00 AM"
- '字符型
- Dim MYLevelName As String
- MYLevelName = "utilElectricity"
- '对象型
- Dim MyExcelApp As Object
- Set MyExcelApp = GetObject(, "Excel.Application")
- 'Variant
- Dim PointArray As Variant
- 'MicroStation特有的变量类型
- 'Application(应用)
- Dim MSAPP As Application
- Set MSAPP = Application
- 'ActiveDesignFile当前设计文件
- 'ActiveModelReference当前模型参考
- 'ActiveSettings 当前设置
- 'VBProject object & attributes 对象以及属性
- 'UserName用户名
- '取得左、顶、宽和高属性
- 'DesignFile设计文件
- Dim MyDGN As DesignFile
- Set MyDGN = Application.ActiveDesignFile
- 'Author 作者,Client客户,Comments注释,Company公司,KeyWords关键字,Manager管理者,Subject主题,Title标题
- 'FormatMajorVersion 格式主版本 FormatMinorVersion格式次版本
- 'Levels层, Models模型, Name 名称,Path 路径
- 'ModelReference 模型参考
- Dim MyModel As ModelReference
- Set MyModel = Application.ActiveModelReference
- 'Level 层
- Dim MyLevel As Level
- Set MyLevel = Application.ActiveDesignFile.Levels()
- 'Description 描述, ElementColor元素颜色,ElementLineStyle元素线性,ElementLineWeight元素线宽,IsActive是否激活,IsDisplayed是否显示
- 'IsFrozen是否冻结,IsLocked是否锁定,Name名字,Number层号,Plot光栅绘图
- 'LineElement线元素
- Dim MyLine As Application
- Set MyLine = Application.CreateLineElement2(Nothing, Point3dFromXYZ(, , ), Point3dFromXYZ(, , ))
- Application.ActiveModelReference.AddElement MyLine
- 'EllipseElement椭圆元素
- Dim MyCircle As EllipseElement
- Dim RotMatrix As Matrix3d
- Set MyCircle = CreateEllipseElement2(Nothing, Point3dFromXYZ(, , ), 1.5, 1.5, RotMatrix)
- Application.ActiveModelReference.AddElement MyCircle
- 'ArcElement 弧元素
- Dim MyArc As ArcElement
- Dim RotMatrix As Matrix3d
- Set MyArc = CreateArcElement2(Nothing, Point3dFromXYZ(, , ), 1.75, 1.75, RotMatrix, Radians(), Radiands())
- Application.ActiveModelReference.AddElement MyArc
- 'TextElement文本元素
- Dim MyText As TextElement
- Dim RotMatrix As Matrix3d
- Set MyText = CreateTextElement1(Nothing, "MicroStation VBA", Point3dFromXYZ(, , ), RotMatrix)
- Application.ActiveModelReference.AddElement MyText
- '赋值和设置对象
- Dim LevelName As String
- LevelName = "Element"
- Dim EasementLevel As Level
- Set EasementLevel = ActiveDesignFile.AddNewLevel(LevelName)
- Dim StartPoint( To ) As Double
- StartPoint() = 4.5
- StartPoint() = 5.6
- StartPoint() = 6.7
- Sub ArrayTestA()
- Dim MyVerticies( To ) As Point3d
- Dim MyLine As LineElement
- MyVerticies().X =
- MyVerticies().Y =
- MyVerticies().X =
- MyVerticies().Y =
- MyVerticies().X =
- MyVerticies().Y =
- Set MyLine = CreateLineElement1(Nothing, MyVerticies)
- ActiveModelReference.AddElement MyLine
- End Sub
- Sub VariableTestD()
- Dim MySalary As Double
- Dim MySalary As Double
- MySalary =
- MyHourly = MySalary / /
- MsgBox "My Hourly Rate is " & FormatCurrency(MyHourly, , vbFalse, vbFalse, vbTrue)
- End Sub
本章回顾:
变量是保存值或指向对象的名字。在函数、过程或事件内声明的变量是局部的,仅能在声明它的函数中使用,不能在函数外使用。在窗体或代码模块通用声明区中声明的变量能在声明它们的窗体或代码模块内任何地方使用。在代码模块中声明为“Public”的变量能在VBA工程的任何位置使用,在类模块中声明为“public”的变量成为类模块的读/写属性
如果没有变量,一切将是静态的什么也不能代表——线总是从固定的一点画到固定的另一点,文本总是插入在同一点且内容总是相同的。
第七章 操作文本
- UCase大写转换
- Function Ucase(String)
- LCase小写转换
- Function Lcase(String)
- StrConv字符串转换
- Function StrConv(String, Conversion As VbStrConv, [LocaleID AS Long])
- WeekDayName星期名 WeekDay日期转星期
- Function WeekDayName(Weekday As Long ,[Abbreviate As Boolean = False],[FirstDayOffWeek As VbDayOfWeek = vbUseSystemDayOfWeek]) As String
- MonthNAme月名
- Function MonthName(Month As Long, [Abbreviate As Boolean = False]) As String
- LTrim左截取 RTrim右截取 Trim两端截取
- Function LTrim(String)
- Function RTrim(String)
- Function Trim(String)
- StrComp字符串比较
- Function StrComp(String1, String2, [Compare As VbCompareMethod = vbBinaryCompare]
- Left左取字符串
- Function Left(String ,Length As Long)
- Right右取字符串
- Function Right(String, Length As Long)
- Mid 取中串
- Function Mid(String, Start As Long, [Length])
- Sub TextWork12()
- Dim BookTitle As String
- BookTitle = "Learning MicroStation VBA"
- Debug.Print Mid(BookTitle, , )
- Debug.Print Mid(BookTitle, )
- Debug.Print Mid(BookTitle, InStr(, BookTitle, " ") + )
- End Sub
'注意上面的InStr里面的" "里面是有一个空格
运行结果:
arning
ing MicroStation VBA
MicroStation VBA
第一个是从第三个字符开始并返回六个字符
第二个是从第六个字符开始并返回其后的每个字符
第三个是以Instr函数在变量BookTitle中查找第一个空格的位置并加上“1”作为起始,这样实际上是从第一个空格后开始的。如果没有指定长度,将得到空格后的所有内容
- Replace 替换字符
- Function Replace(Expression As String, Find As String, Replace As String, [Start As Long = ],[Count As Long = -], [Compare As VbCompareMethod = vbBinaryCompare])AS String
- Sub TextWork13()
- Dim FilePath As String
- Dim FilePath2 As String
- FilePath = Application.ActiveDesignFile.FullName
- FilePath2 = Replace(FilePath, "\", "//")
- MsgBox FilePath & "turns into" & vbCr & FilePath2
- End Sub
- InStr 子串位置
- Function InStr([Start],[String1],[String2],[Compare As VbCompareMethod = vbBinaryCompare])
- InStrRev反向子串位置
- Function InStrRev(StringCheck As String, StringMatch As String, [Start As Long = -],[Compare As VbCompareMethod = vbBinaryCompare]) As Long
- Split 分割和 Join联结
- Function Split(Expression As String,[Delimiter],[Limit As Long = -],[Compare As VbCompareMethod = vbBinaryCompare])
- Function Join(SourceArray,[Delimiter]) As String
- Asc 字符到ASCII码 和Chr ASCII码到字符
- Function Asc(Stirng As String) As Integer
- Function Chr(CharCode As Long)
- FormatCurrency格式化货币
- Function FormatCurrency(Expression, [NumDigitaAfterDecimal As Long = -],[IncludeLeadingDigit As VbTriState = vbUseDefault],[GroupDigits As VbTriState = vbUseDefault])As String
- FormatNumber格式化数字
- Function FormatNumber(Expression,[NumDigitsAfterDecimal As Long =-],[IncludeLeadingDigit As VbTriState = vbUseDefault],[UseParensForNegativenumbers As VbTriState = vbUseDefault],[GroupDigits As VbTriState = vbUseDefault]) As String
- FormatDateTime格式化日期
- Funcion FormatDateTime(Expression,[NamedFormat As VbDateTimeFormat = vbGeneralDate]) As String
- Format格式化
- Function Format(Expression, [Format],[FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear As VbFirstWeekOfYear = vbSunday],[FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
&连接符
用来连接字符串
VbCr回车符<Enter>键
VbTab制表符<Tab>键
本章回顾:
字符串是指由文本、字母、数字和其他字符组合的单个文本块。本章集中讲述了如何操作这些字符串,例如大写转化,小写转化。连接字符串,格式化字符串,分割字符串等操作
<F8>可以单步
第8章 操作数字
加、减、乘、除、平方与指数(^2 或者^n)、平方根Sqr
MicroStation VBA基础的更多相关文章
- MicroStation VBA 操作提示
Sub TestShowCommand() ShowCommand "画条线" ShowPrompt "选择第一个点" ShowStatus "选择第 ...
- VBA基础——循环语句
VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...
- VBA基础出发
一.什么是VBA,学习的原因是什么. Visual Basic for Applicaion(VBA)是Visual Basic的一种宏语言,主要用来扩展Windows的应用程序功能.在日常生活中,使 ...
- Office·Word高级·VBA基础概念语法
阅文时长 | 5.21分钟 字数统计 | 1823字符 『Office·Word高级·VBA基础概念语法』 编写人 | SCscHero 编写时间 | Monday, June 29, 2020 文章 ...
- MicroStation VBA 可视化界面
第十章 可视界面 Private Sub UserForm_Initialize() Dim ViewCen As Point3d Dim MyView As View For Each MyView ...
- VBA基础之Excel 工作薄(Book)的操作(三)
三. Excel 工作薄(Book)的操作1. Excel 创建工作薄(Book) Sub addWorkbook() Workbooks.Add End Sub 2. Excel 打开工作薄(Boo ...
- Excel VBA基础教程
https://www.w3cschool.cn/excelvba/excelvba-basics.html Excel VBA语言基础 VBA语言的基础认识 详解VBA编程是什么 excel处理录制 ...
- VBA基础 - 函数和模块
概要 对于一般的 VBA 程序来说, 可能一个或几个函数就行了. 毕竟, VBA 只是作为 excel 的辅助工具来用的. 但是, 随着 VBA 写的越来越多, 用个工程来管理就有必要了, 而一个代码 ...
- 20150916_001 vba 基础
一.什么是“宏”.“宏”有什么用 关于“宏”的详细定义,可以参考百度百科的解释(点击查看).我给它一个简单的或许不太严谨的定义: 宏的通俗定义:宏是被某些软件所能识别.理解并执行的特定代码/脚本. 宏 ...
随机推荐
- WinForm(VB.NET)获取当前登录的用户名
运行Windows Task Manager,查看Users标签,可以看到所有登录电脑的用户,现在Insus.NET想命名用VB.NET的WinForm程序去获取当前的用户名. 获取程序简单,可以参考 ...
- 孙鑫MFC学习笔记20:Hook编程
1.HOOK拦截消息,设置越后的钩子优先级越高(钩子队列)2.SetWindowHookEx设置钩子 如果thread identifier为0或其他进程创建的线程,回调函数需要在动态链接库中声 ...
- spring笔记1 spring MVC的基础知识1
1,spring MVC的流程 优秀的展现层框架-Spring MVC,它最出彩的地方是注解驱动和支持REST风格的url. 流程编号 完成的主要任务 补充 1 用户访问web页面,发送一个htt ...
- 值栈(Structs2)
1. 关于值栈: 1). 登陆 时, ${userName} 读取 userName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的. 2). ValueStack: I. ...
- MYSQL数据库如何赋予远程某个IP访问权限
1. 授权用户root使用密码jb51从任意主机连接到mysql服务器:代码如下:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb ...
- ssh架构简单解释和vo po解释
Struts.spring.Hibernate在各层的作用 1)struts 负责 web层. ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理,再Forwa ...
- Java final方法
之所以要使用final方法,可能是出于对两方面理由的考虑.第一个是为方法"上锁",防止任何继承类改变它的本来含义.设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖 ...
- singleCall单来源调用解析及实现
定义: 单来源调用指一个类的生成工作只能由特定类来执行. eg李宁牌鞋子只能由李宁专卖店生产 这个问题归结起来,也就是说在工厂模式中,指定的产品类只能通过具体的特定工厂类来生成,而不能自己new出来或 ...
- 学习angular.js的一些笔记想法(上)
1.data-ng-app与ng-app的区别 data-ng-app是为了h5不报错 2.ng-class 不多说就来拿例子说吧 html代码 <div class='color-change ...
- 纯CSS3写的10个不同的酷炫图片遮罩层效果
这个是纯CSS3实现的的10个不同的酷炫图片遮罩层效果,可以欣赏一下 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...