实习笔记1

2016年8月1日

14:12

Option Explicit

缺省情况下,如果使用一个没有声明的变量,它将继承“Variant”类型。在模块、窗体和类的通用声明区使用“OptionExplicit”能强制我们必须声明变量后才能使用变量

Sample:

  1. Option Explicit
  2.  
  3. Sub test()
  4.  
  5. X =
  6.  
  7. End Sub

在通用声明区声明了“Option Explicit”。当试着去运行上述test宏时将得到一个错误

本章回顾

1.在过程、函数或用户窗体事件中写代码

2.在过程和函数中利用必须的和可选的参数

3.函数可返回值、数组、类型和对象

4.在过程和函数中,如果参数声明为“ByRef”,则可以改变作为参数传递进来的变量。把参数声明为“ByVal”将保持变量不变

4.能在过程、函数和事件中或者在通用声明区内声明变量。这些变量的范围依赖于它们在何处被声明以及声明中所用的关键字

第六章 变量

  1. Option Explicit
  2.  
  3. Sub tst()
  4.  
  5. TTT =
  6.  
  7. MsgBox TTT
  8.  
  9. End Sub
  10.  
  11. '整型
  12.  
  13. Dim PageNumber As Integer
  14.  
  15. PageNumber =
  16.  
  17. '长整型
  18.  
  19. Dim MySalary As Long
  20.  
  21. MySalary =
  22.  
  23. '双精度型
  24.  
  25. Dim HourToLearnVBA As Double
  26.  
  27. HourToLearnVBA = 36.25
  28.  
  29. Sub VariableTestC()
  30.  
  31. Dim N As Double
  32.  
  33. N = 1.23456789012346
  34.  
  35. N = 12345678901234.6
  36.  
  37. End Sub
  38.  
  39. '布尔类型
  40.  
  41. Dim ICanLearnThis As Boolean
  42.  
  43. ICanLearnThis = True
  44.  
  45. '日期型
  46.  
  47. Dim XMReleaseDate As Date
  48.  
  49. XMReleaseDate = "5/19/2006 8:00:00 AM"
  50.  
  51. '字符型
  52.  
  53. Dim MYLevelName As String
  54.  
  55. MYLevelName = "utilElectricity"
  56.  
  57. '对象型
  58.  
  59. Dim MyExcelApp As Object
  60.  
  61. Set MyExcelApp = GetObject(, "Excel.Application")
  62.  
  63. 'Variant
  64.  
  65. Dim PointArray As Variant
  66.  
  67. 'MicroStation特有的变量类型
  68.  
  69. 'Application(应用)
  70.  
  71. Dim MSAPP As Application
  72.  
  73. Set MSAPP = Application
  74.  
  75. 'ActiveDesignFile当前设计文件
  76.  
  77. 'ActiveModelReference当前模型参考
  78.  
  79. 'ActiveSettings 当前设置
  80.  
  81. 'VBProject object & attributes 对象以及属性
  82.  
  83. 'UserName用户名
  84.  
  85. '取得左、顶、宽和高属性
  86.  
  87. 'DesignFile设计文件
  88.  
  89. Dim MyDGN As DesignFile
  90.  
  91. Set MyDGN = Application.ActiveDesignFile
  92.  
  93. 'Author 作者,Client客户,Comments注释,Company公司,KeyWords关键字,Manager管理者,Subject主题,Title标题
  94.  
  95. 'FormatMajorVersion 格式主版本 FormatMinorVersion格式次版本
  96.  
  97. 'Levels层, Models模型, Name 名称,Path 路径
  98.  
  99. 'ModelReference 模型参考
  100.  
  101. Dim MyModel As ModelReference
  102.  
  103. Set MyModel = Application.ActiveModelReference
  104.  
  105. 'Level
  106.  
  107. Dim MyLevel As Level
  108.  
  109. Set MyLevel = Application.ActiveDesignFile.Levels()
  110.  
  111. 'Description 描述, ElementColor元素颜色,ElementLineStyle元素线性,ElementLineWeight元素线宽,IsActive是否激活,IsDisplayed是否显示
  112.  
  113. 'IsFrozen是否冻结,IsLocked是否锁定,Name名字,Number层号,Plot光栅绘图
  114.  
  115. 'LineElement线元素
  116.  
  117. Dim MyLine As Application
  118.  
  119. Set MyLine = Application.CreateLineElement2(Nothing, Point3dFromXYZ(, , ), Point3dFromXYZ(, , ))
  120.  
  121. Application.ActiveModelReference.AddElement MyLine
  122.  
  123. 'EllipseElement椭圆元素
  124.  
  125. Dim MyCircle As EllipseElement
  126.  
  127. Dim RotMatrix As Matrix3d
  128.  
  129. Set MyCircle = CreateEllipseElement2(Nothing, Point3dFromXYZ(, , ), 1.5, 1.5, RotMatrix)
  130.  
  131. Application.ActiveModelReference.AddElement MyCircle
  132.  
  133. 'ArcElement 弧元素
  134.  
  135. Dim MyArc As ArcElement
  136.  
  137. Dim RotMatrix As Matrix3d
  138.  
  139. Set MyArc = CreateArcElement2(Nothing, Point3dFromXYZ(, , ), 1.75, 1.75, RotMatrix, Radians(), Radiands())
  140.  
  141. Application.ActiveModelReference.AddElement MyArc
  142.  
  143. 'TextElement文本元素
  144.  
  145. Dim MyText As TextElement
  146.  
  147. Dim RotMatrix As Matrix3d
  148.  
  149. Set MyText = CreateTextElement1(Nothing, "MicroStation VBA", Point3dFromXYZ(, , ), RotMatrix)
  150.  
  151. Application.ActiveModelReference.AddElement MyText
  152.  
  153. '赋值和设置对象
  154.  
  155. Dim LevelName As String
  156.  
  157. LevelName = "Element"
  158.  
  159. Dim EasementLevel As Level
  160.  
  161. Set EasementLevel = ActiveDesignFile.AddNewLevel(LevelName)
  162.  
  163. Dim StartPoint( To ) As Double
  164.  
  165. StartPoint() = 4.5
  166.  
  167. StartPoint() = 5.6
  168.  
  169. StartPoint() = 6.7
  170.  
  171. Sub ArrayTestA()
  172.  
  173. Dim MyVerticies( To ) As Point3d
  174.  
  175. Dim MyLine As LineElement
  176.  
  177. MyVerticies().X =
  178.  
  179. MyVerticies().Y =
  180.  
  181. MyVerticies().X =
  182.  
  183. MyVerticies().Y =
  184.  
  185. MyVerticies().X =
  186.  
  187. MyVerticies().Y =
  188.  
  189. Set MyLine = CreateLineElement1(Nothing, MyVerticies)
  190.  
  191. ActiveModelReference.AddElement MyLine
  192.  
  193. End Sub
  194.  
  195. Sub VariableTestD()
  196.  
  197. Dim MySalary As Double
  198.  
  199. Dim MySalary As Double
  200.  
  201. MySalary =
  202.  
  203. MyHourly = MySalary / /
  204.  
  205. MsgBox "My Hourly Rate is " & FormatCurrency(MyHourly, , vbFalse, vbFalse, vbTrue)
  206.  
  207. End Sub

本章回顾:

变量是保存值或指向对象的名字。在函数、过程或事件内声明的变量是局部的,仅能在声明它的函数中使用,不能在函数外使用。在窗体或代码模块通用声明区中声明的变量能在声明它们的窗体或代码模块内任何地方使用。在代码模块中声明为“Public”的变量能在VBA工程的任何位置使用,在类模块中声明为“public”的变量成为类模块的读/写属性

如果没有变量,一切将是静态的什么也不能代表——线总是从固定的一点画到固定的另一点,文本总是插入在同一点且内容总是相同的。

第七章 操作文本

  1. UCase大写转换
  2.  
  3. Function Ucase(String)
  4.  
  5. LCase小写转换
  6.  
  7. Function Lcase(String)
  8.  
  9. StrConv字符串转换
  10.  
  11. Function StrConv(String, Conversion As VbStrConv, [LocaleID AS Long])
  12.  
  13. WeekDayName星期名 WeekDay日期转星期
  14.  
  15. Function WeekDayName(Weekday As Long ,[Abbreviate As Boolean = False],[FirstDayOffWeek As VbDayOfWeek = vbUseSystemDayOfWeek]) As String
  16.  
  17. MonthNAme月名
  18.  
  19. Function MonthName(Month As Long, [Abbreviate As Boolean = False]) As String
  20.  
  21. LTrim左截取 RTrim右截取 Trim两端截取
  22.  
  23. Function LTrim(String)
  24.  
  25. Function RTrim(String)
  26.  
  27. Function Trim(String)
  28.  
  29. StrComp字符串比较
  30.  
  31. Function StrComp(String1, String2, [Compare As VbCompareMethod = vbBinaryCompare]
  32.  
  33. Left左取字符串
  34.  
  35. Function Left(String ,Length As Long)
  36.  
  37. Right右取字符串
  38.  
  39. Function Right(String, Length As Long)
  40.  
  41. Mid 取中串
  42.  
  43. Function Mid(String, Start As Long, [Length])
  44.  
  45. Sub TextWork12()
  46.  
  47. Dim BookTitle As String
  48.  
  49. BookTitle = "Learning MicroStation VBA"
  50.  
  51. Debug.Print Mid(BookTitle, , )
  52.  
  53. Debug.Print Mid(BookTitle, )
  54.  
  55. Debug.Print Mid(BookTitle, InStr(, BookTitle, " ") + )
  56.  
  57. End Sub

'注意上面的InStr里面的" "里面是有一个空格

运行结果:

arning

ing MicroStation VBA

MicroStation VBA

第一个是从第三个字符开始并返回六个字符

第二个是从第六个字符开始并返回其后的每个字符

第三个是以Instr函数在变量BookTitle中查找第一个空格的位置并加上“1”作为起始,这样实际上是从第一个空格后开始的。如果没有指定长度,将得到空格后的所有内容

  1. Replace 替换字符
  2.  
  3. Function Replace(Expression As String, Find As String Replace As String, [Start As Long = ],[Count As Long = -], [Compare As VbCompareMethod = vbBinaryCompare])AS String
  4.  
  5. Sub TextWork13()
  6.  
  7. Dim FilePath As String
  8.  
  9. Dim FilePath2 As String
  10.  
  11. FilePath = Application.ActiveDesignFile.FullName
  12.  
  13. FilePath2 = Replace(FilePath, "\", "//")
  14.  
  15. MsgBox FilePath & "turns into" & vbCr & FilePath2
  16.  
  17. End Sub
  18.  
  19. InStr 子串位置
  20.  
  21. Function InStr([Start],[String1],[String2],[Compare As VbCompareMethod = vbBinaryCompare])
  22.  
  23. InStrRev反向子串位置
  24.  
  25. Function InStrRev(StringCheck As String, StringMatch As String, [Start As Long = -],[Compare As VbCompareMethod = vbBinaryCompare]) As Long
  26.  
  27. Split 分割和 Join联结
  28.  
  29. Function Split(Expression As String,[Delimiter],[Limit As Long = -],[Compare As VbCompareMethod = vbBinaryCompare])
  30.  
  31. Function Join(SourceArray,[Delimiter]) As String
  32.  
  33. Asc 字符到ASCII Chr ASCII码到字符
  34.  
  35. Function Asc(Stirng As String) As Integer
  36.  
  37. Function Chr(CharCode As Long)
  38.  
  39. FormatCurrency格式化货币
  40.  
  41. Function FormatCurrency(Expression, [NumDigitaAfterDecimal As Long = -],[IncludeLeadingDigit As VbTriState = vbUseDefault],[GroupDigits As VbTriState = vbUseDefault])As String
  42.  
  43. FormatNumber格式化数字
  44.  
  45. Function FormatNumber(Expression,[NumDigitsAfterDecimal As Long =-],[IncludeLeadingDigit As VbTriState = vbUseDefault],[UseParensForNegativenumbers As VbTriState = vbUseDefault],[GroupDigits As VbTriState = vbUseDefault]) As String
  46.  
  47. FormatDateTime格式化日期
  48.  
  49. Funcion FormatDateTime(Expression,[NamedFormat As VbDateTimeFormat = vbGeneralDate]) As String
  50.  
  51. Format格式化
  52.  
  53. 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基础的更多相关文章

  1. MicroStation VBA 操作提示

    Sub TestShowCommand() ShowCommand "画条线" ShowPrompt "选择第一个点" ShowStatus "选择第 ...

  2. VBA基础——循环语句

    VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...

  3. VBA基础出发

    一.什么是VBA,学习的原因是什么. Visual Basic for Applicaion(VBA)是Visual Basic的一种宏语言,主要用来扩展Windows的应用程序功能.在日常生活中,使 ...

  4. Office·Word高级·VBA基础概念语法

    阅文时长 | 5.21分钟 字数统计 | 1823字符 『Office·Word高级·VBA基础概念语法』 编写人 | SCscHero 编写时间 | Monday, June 29, 2020 文章 ...

  5. MicroStation VBA 可视化界面

    第十章 可视界面 Private Sub UserForm_Initialize() Dim ViewCen As Point3d Dim MyView As View For Each MyView ...

  6. VBA基础之Excel 工作薄(Book)的操作(三)

    三. Excel 工作薄(Book)的操作1. Excel 创建工作薄(Book) Sub addWorkbook() Workbooks.Add End Sub 2. Excel 打开工作薄(Boo ...

  7. Excel VBA基础教程

    https://www.w3cschool.cn/excelvba/excelvba-basics.html Excel VBA语言基础 VBA语言的基础认识 详解VBA编程是什么 excel处理录制 ...

  8. VBA基础 - 函数和模块

    概要 对于一般的 VBA 程序来说, 可能一个或几个函数就行了. 毕竟, VBA 只是作为 excel 的辅助工具来用的. 但是, 随着 VBA 写的越来越多, 用个工程来管理就有必要了, 而一个代码 ...

  9. 20150916_001 vba 基础

    一.什么是“宏”.“宏”有什么用 关于“宏”的详细定义,可以参考百度百科的解释(点击查看).我给它一个简单的或许不太严谨的定义: 宏的通俗定义:宏是被某些软件所能识别.理解并执行的特定代码/脚本. 宏 ...

随机推荐

  1. WinForm(VB.NET)获取当前登录的用户名

    运行Windows Task Manager,查看Users标签,可以看到所有登录电脑的用户,现在Insus.NET想命名用VB.NET的WinForm程序去获取当前的用户名. 获取程序简单,可以参考 ...

  2. 孙鑫MFC学习笔记20:Hook编程

    1.HOOK拦截消息,设置越后的钩子优先级越高(钩子队列)2.SetWindowHookEx设置钩子    如果thread identifier为0或其他进程创建的线程,回调函数需要在动态链接库中声 ...

  3. spring笔记1 spring MVC的基础知识1

    1,spring MVC的流程 优秀的展现层框架-Spring MVC,它最出彩的地方是注解驱动和支持REST风格的url.   流程编号 完成的主要任务 补充 1 用户访问web页面,发送一个htt ...

  4. 值栈(Structs2)

    1. 关于值栈: 1). 登陆 时, ${userName} 读取 userName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的. 2). ValueStack: I. ...

  5. MYSQL数据库如何赋予远程某个IP访问权限

    1. 授权用户root使用密码jb51从任意主机连接到mysql服务器:代码如下:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb ...

  6. ssh架构简单解释和vo po解释

      Struts.spring.Hibernate在各层的作用 1)struts 负责 web层. ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理,再Forwa ...

  7. Java final方法

    之所以要使用final方法,可能是出于对两方面理由的考虑.第一个是为方法"上锁",防止任何继承类改变它的本来含义.设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖 ...

  8. singleCall单来源调用解析及实现

    定义: 单来源调用指一个类的生成工作只能由特定类来执行. eg李宁牌鞋子只能由李宁专卖店生产 这个问题归结起来,也就是说在工厂模式中,指定的产品类只能通过具体的特定工厂类来生成,而不能自己new出来或 ...

  9. 学习angular.js的一些笔记想法(上)

    1.data-ng-app与ng-app的区别 data-ng-app是为了h5不报错 2.ng-class 不多说就来拿例子说吧 html代码 <div class='color-change ...

  10. 纯CSS3写的10个不同的酷炫图片遮罩层效果

    这个是纯CSS3实现的的10个不同的酷炫图片遮罩层效果,可以欣赏一下 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...