实习笔记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. Sql去重语句

    海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复? 如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一 ...

  2. C语言学习008:标准错误

    在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误 #include <stdio.h> ...

  3. 关于JS

    首先推荐一个小插件:W3Cfuns前端开发工具箱 整理一些杂乱的知识点. 1,Dom用于操作html元素 2,window.location.reload();//刷新当前页********** 3, ...

  4. SUI分页组件和avalon搞定ajax无刷新分页

    <div ms-controller="main"> <h2 class="pagination-centered">{{ title ...

  5. Mac OS 的一点历史: Mac OS, Mac OSX 与Darwin

    作为收购 NeXT 公司的结果,苹果公司获得了 NeXTSTEP 架构中的 Mach 和 Objective-C 等设计.尽管 NeXTSTEP 本身已经不再发展了,但是其中的组件在 OS X 中获得 ...

  6. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  7. html5学习笔记(2)

    效果图 以下为源码 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  8. C++: DataGridView::DataSource

    #pragma once #include "Form2.h" namespace cdemo { using namespace System; using namespace ...

  9. Android Volley框架的使用(4)

    5. 取消请求 可以通过请求的setTag()方法给请求设置TAG,需要取消这些请求时,用请求队列的cancelAll()方法取消带有特定TAG的请求. 为请求设置TAG: stringRequest ...

  10. CI框架源码阅读笔记6 扩展钩子 Hook.php

    CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存.输出等).例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = ...