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 基础
一.什么是“宏”.“宏”有什么用 关于“宏”的详细定义,可以参考百度百科的解释(点击查看).我给它一个简单的或许不太严谨的定义: 宏的通俗定义:宏是被某些软件所能识别.理解并执行的特定代码/脚本. 宏 ...
随机推荐
- 【原创】Windows平台搭建Kafka源代码开发环境(Eclipse版本)
最近在研究Kafka源代码,需要自己搭建一个开发环境.官网上给出的提示略显简单,照着做了一遍也碰到了一些问题.特此记录下来. 开发环境: Oracle Java 1.7_u71 + Eclipse 4 ...
- html5画布的旋转效果
keleyi.htm的代码如下: <!DOCTYPE HTML> <html> <head> <title>html旋转画布-柯乐义</title ...
- HTTP & HTTPs
HTTP HTTP 消息 HTTP 方法 参考 [1]. HTTP 协议初识 - 阮一峰: HTTPS 参考 [1]. HTTPS 升级指南 - 阮一峰:
- Android Volley框架的使用(5)
6. 设置超时时间 可以为请求设置超时时间.最大重试次数.重试时间增长因子等.其中new DefaultRetryPolicy()的第一个参数是超时时间,第二个参数是最大重试次数.第三个参数是重试时间 ...
- 泛函编程(25)-泛函数据类型-Monad-Applicative
上两期我们讨论了Monad.我们说Monad是个最有概括性(抽象性)的泛函数据类型,它可以覆盖绝大多数数据类型.任何数据类型只要能实现flatMap+unit这组Monad最基本组件函数就可以变成Mo ...
- GJM: Unity3D基于Socket通讯例子 [转载]
首先创建一个C# 控制台应用程序, 直接服务器端代码丢进去,然后再到Unity 里面建立一个工程,把客户端代码挂到相机上,运行服务端,再运行客户端. 高手勿喷!~! 完全源码已经奉上,大家开始研究吧! ...
- 当EL遇到char
在EL表达式中,假设某个entity的status属性为char类型,此处假设为'1',在jsp中,对于${entity.status=='1'},我们预期的结果是true,但实际上是false - ...
- 购物车catslider简单的多商品分类滑动
效果预览 实例代码 <!DOCTYPE html> <html lang="zh" class="no-js"> <head> ...
- 太可爱了!CSS3 & SVG 制作的米老鼠钟表
米老鼠是大家非常熟悉的迪斯尼动画形象.这是一个可爱的效果,结合 CSS & SVG 图形实现的米老鼠钟表效果.Web 技术让很多生活中的事物都能搬到网上去,后面的推荐阅读也有很多的效果,感兴趣 ...
- Unicode Character Table – Unicode 字符大全
Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编码.它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.Unicode Chara ...