实习笔记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. for循环的一种简化

    数组: var arr = [1, 2, 3, 5, 6]; 传统的教科书式的循环写法: for(var i=0; i<arr.length; i++){ console.log(arr[i]) ...

  2. WinForm GDI+ 资料收集

    UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面, ...

  3. js或css文件合并的三种方式推荐

    源文档 <http://www.jb51.net/article/32834.htm> 在Web项目的开发中,js,css文件会随着项目的开发变得越来越多,越来越大,这就给给性能方面带来一 ...

  4. 仿微博php生成短网址

    html code <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. C# ~ 数据库连接

    C#连接数据库(SQL Server)进行数据的读取和写入,学习之. 1. 数据库连接 服务器:“Data Source=服务器IP; Initial Catalog=数据库; User ID=用户名 ...

  6. C语言文件方式输入与输出(最简洁方便实用的一种方式)

    freopen("inputfile.txt", "r", stdin); freopen("outputfile.txt", " ...

  7. 设计模式之 面向对象的养猪厂的故事,C#演示(一)

    对于设计模式, 从本质上说, 其最大的用途就是适应需求的变化. 因为有了设计模式,我们可以在设计阶段就为未来可能发生的变化留下足够的空间. 我们通过一个建造现代化养猪场的故事, 来讨论一下设计模式与需 ...

  8. Linux更改主机名--适用于Centos

    1.显示主机名: [root@bogon:~]# hostnamezhh64 2.临时修改主机名: [root@bogon:~]# hostname zzofs[root@bogon:~]# host ...

  9. C++之迭代器

    迭代器的概念 迭代器是用来访问string对象或vector对象的元素的,类似于下标运算和指针. 其对象是容器中的元素或string对象中的字符: 使用迭代器可以访问某个元素,迭代器也能从一个元素移动 ...

  10. java内存模型-重排序

    数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之 ...