实习笔记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基础的更多相关文章

  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. TreeView 自定义显示checkbox

    本项目需要对TreeView进行定制,要求比较简单,主要要求如下: Winform中TreeView控件默认只支持所有级别的CheckBox显示或者不显示,不能控制制定Level的树节点显示 效果如下 ...

  2. C#实现网页爬虫

    HTTP请求工具类(功能:1.获取网页html:2.下载网络图片:): using System; using System.Collections.Generic; using System.Dra ...

  3. Java动态程序设计:反射介绍

    使用运行的类的信息使你的程序设计更加灵活 反射授予了你的代码访问装载进JVM内的Java类的内部信息的权限,并且允许你编写在程序执行期间与所选择的类的一同工作的代码,而不是在源代码中.这种机制使得反射 ...

  4. 基于吉日嘎拉的通用权限管理Webform版老界面bug修复

    虽然弄了新界面<基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面>,但老界面的一点菜单显示的问题还是让我这种强迫症揪心,终于今晚可以美美的睡觉了. 老代码用了Ses ...

  5. 第 12 章 CSS 入门

    学习要点: 1.使用 CSS 2.三种方式 3.层叠和继承 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS(层叠样式表),它是用来对 HTML 文档外观的表现形式进行排版和格式化. 一.使用 ...

  6. HTTP协议简解

    1.什么是http协议 http协议: 浏览器客户端 与  服务器端 之间数据传输的规范 2.查看http协议的工具 1)使用火狐的firebug插件(右键->查看元素->网络) 2)使用 ...

  7. 一次Debug过程的思考

    前一段时间,部门接入了新业务,由于业务量小,架构非常简单,采用了最简单的LNMP架构,整个项目是交给一个刚毕业的RD负责的,这是背景. 上线前半天,服务平稳运行.下午的时候,开始收到大量报警:No h ...

  8. 修改windows系统文件权限

    修改windows系统文件总是提示没有权限,虽然已是administrator也不管用. 以下方法可以解决: 右键属性,安全,高级,所有者,编辑,选择当前用户并确定, 回到上一页再确定, 然后在安全页 ...

  9. Servlet过滤器Filter用法

    1 Servlet 过滤器方法 过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法:public void ...

  10. Mysql关键字 Mysql保留字列表 Mysql字段名

    Mysql保留字列表.吠品整理. 尝试使用一个识别符,例如使用嵌入式MySQL 数据类型或函数名作为表名或列名,例如TIMESTAMP 或GROUP,会造成一个常见问题.允许你这样操作( 例如,ABS ...