VB6.0使用MsChart和MSFlexGrid总结

一、VB6.0基本语法

1、基本数据类型

类型名称关键字字节数取值范围及用途
字节型Byte10~255,用于存储二进制数据,如图像、声音等
整型Integer2-32768~32767,用于表示没有小数点的数据
长整型Long4-2147483648~2147483647,当使用整型不足以表示数据时,使用长整型
单精度浮点型Single4负数时: -3.402823E38~-1.401298E-45;正数时:1.401298E-45~3.402823E38
双精度浮点型Double8负数时: -1.79769313486232E308~-4.94065645841247E-324;正数时:4.94065645841247E-324~1.79769313486232E308
货币型Currency8-922337203685477.5808~922337203685477.5807,用于精确计算,整数部分有15位数字,小数部分有4位数字
无符号整型Decimal14无小数点时:±79228162514264337593543950335,小数点右边有28位数时:±7.9228162514264337593543950335;最小的非零值:±0.0000000000000000000000000001"
字符型(变长)String10字节加字符串长度0到大约20亿
字符型(定长)String字符串长度1到大约65,400
日期型Date8100年1月1日到9999年12月31日
逻辑型Boolean2True或False
对象型Object4任何Object引用
变体型(数字)Variant16任何数字值,最大可达Double的范围
变体型(字符)Variant22个字节加字符串长度与变长 String 有相同的范围
用户自定义利用Type所有元素所需数目每个元素的范围与它本身的数据类型的范围相同

2、基本常量

在这里插入图片描述
p.s.

  • 用户自定义常量:用 Const 语句声明的常量。
以下是正确的常量声明:
Const Pi = 3.14159265358979  '声明了常量 Pi,其值为 3.14159265358979 
Public Const MaxPlanets As Integer = 9  '声明了公用整型常量 MaxPlanets
Const ReleaseDate = #1/1/95# 
Const CodeName = "Enigma" 
Public Const Pi = 3.14, MaxPlanets = 9,WorldPop = 6E+09 
Const Pi2 = Pi * 2 
等号右边的表达式除数字或字符串外,也可以是运算结果为数字或字符串的表达式(表 
达式中不能包含函数调用)。
和变量声明一样,用 Const 语句声明的常量也有作用范围。规则如下: 
(1)在过程内部声明的常量,仅存在于过程中。 (2)在模块声明段中声明的常量,对模块中所有过程都有效,但对模块外任何代码都无效。 (3) 在标准模块声明段中声明的常量, 在整个应用程序中有效, 可在 Const 前面放置 Public
关键字,但在窗体模块或类模块中不能声明 Public 常量。

3、变量

(1)变量必须以字母开头,由字母、汉字、数字或下划线组成。 
(2)变量的长度不得超过 255  个字符。 
(3)变量名不能使用 VB 的关键字。 
(4)在同一个范围(即可以引用变量的域,如一个过程、一个窗体等)内,变量名必须 是唯一的
(5)为了增加程序的可读性,可在变量名前加一个类型前缀,以表示该变量的数据类型。

如果要强制 在 VB 中必须先声明变量才可以使用,可以在代码窗口的首行添加以下一行代码:
Option Explicit
在这里插入图片描述

声明变量的语法格式:Dim  变量名 [As  类型]
说明: 
(1)Dim 是变量定义的关键字 (还可能是变量作用范围修饰关键字 Public 或 Private, “作 
用范围修饰关键字”将在变量作用范围讨论)。 (2)[As  类型名]是可选项。As 可以解读为“为” ,如果省略该语句,变量默认为 Variant 
(变体)类型。Variant 数据类型在不同场合可代表不同的数据类型。 
(3)变量名:必须满足变量命名规则。 
通过 Dim  语句进行变量的声明,可以事先将变量通知程序。 
例如:
Dim strName As String  '定义字符串类型变量

4、数组

数组中,每一个元素的名称相同, 索引(下标)连续,且具有相同的数据类型。数组单元通过数组的索引(下标)引用,VB6 数组的下标默认从 0 开始。例如,a(0)表示数组 a 的第 1 个元素,a(1)表示数组 a 的第 2 个元 素,依此类推。

 '一维数组
Dim arr(4) As Integer
'多维数组的定义类似,维数之间使用逗号分隔。例如,以下语句定义了一个三维数组:
Dim mulArr (3, 1 To 10, 1 To 15)

Public 用来声明可以在工程中的任何模块或过程中使用的数组;Private用来声明模块级数组;Dim用来声明普通局部数组;Static用来声明静态局部数组。

动态数组:
Preserve:可选。当改变原有数组维数大小时,用Preserve保持原有数组中的数据。
ReDim:必需。ReDim用来重新定义数组,只能在过程中使用。
在这里插入图片描述

5、常用控制结构

5.1 选择结构

VB中选择结构为:
在这里插入图片描述
其中,If … Then…;End If;是必须

5.2 循环结构

VB中循环包括:

  • Whlie
While<>
Wend
  • For …To …
For<变量>=<开始值>To<结束值>[Step<步长>]
...
	IF<>Then<>
		Exit For
	End If
Next 变量
  • For Each…Next
For Each<变量>In<数组或集合>
...
	IF<>Then<>
		Exit For
	End If
Next 变量
  • While型Do…Loop语句

当While后的表达式结果为True时,执行循环体,直到表达式值为False时退出循环。

语法1:

Do While<表达式>
...
	IF<>Then<>
		Exit Do
Loop

语法2:

Do
...
	IF<>Then<>
		Exit Do
Loop  While<表达式>
  • Until型Do…Loop语句

当Until后的表达式结果为True时退出循环,当Until后的表达式结果为False时执行循环体。

Do Until<表达式>
...
	IF<>Then<>
		Exit Do
Loop

语法2:

Do
...
	IF<>Then<>
		Exit Do
Loop  Until<表达式>

5.3 With语句

With 语句用于定制一个对象或读者自定义类型。With 语句不仅方便读者定制对象,也可增强代码的可读性使得程序结构更加清晰。With语句的语法如下。

With<对象>
....
End With

例如
在这里插入图片描述

6、过程和函数

6.1 sub

sub语法为:
在这里插入图片描述
● Public:可选。表示该Sub过程为全局过程,应用程序中的所有模块都可访问。
● Private:可选。表示该Sub过程为模块级过程,只能在声明的模块中被访问。
● Static:可选。表示该Sub过程的局部变量为静态。
● 过程名:必需。用于标识该Sub的名称。
● 参数列表:可选。用于表示该Sub过程中所传递的参数。
● 语句组:可选。该Sub过程所要完成或执行的功能。

例如:
在这里插入图片描述在这里插入图片描述

在调用Sub过程时,建议采用Call形式。使用Call形式可以使Sub过程调用更加清楚,同时也增加了程序的可读性。

6.2 Function

与Sub过程不同的是,Function过程是一个具有数据类型和返回值的过程。
在这里插入图片描述
例如:
在这里插入图片描述
在这里插入图片描述

以下摘自百度知道:

function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub需定义别的变量,用传址方式传回值。 Sub 过程与Function 过程的区别:
1. Sub过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。
2. Sub过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。
3. 调用过程:调用 Sub 过程与 Function过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
4. 调用 Sub 过程有两种方法: 以下两个语句都调用了名为 MyProc 的 Sub 过程。 Call MyProc(FirstArgument, SecondArgument) MyProc FirstArgument, SecondArgument
注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。

7. VB中的字符编码

VB6.0中,字符使用的是Unicode编码进行保存。

StrConv 函数的语法为:StrConv(待转换字串, 转换格式)
其中转换格式:
vbUnicode 将 Ansi 字串转换为 Unicode
vbFromUnicode 将 Unicode 字串转换为 Ansi

在这里插入图片描述

二、MsChart和MSFlexGrid图表实例

1、文件读取到表格

Public Sub Form_Load()
Open App.Path + "\result.csv" For Input As #1 '程序路径下的data.txt文件

i = 1
Line Input #1, tmp
Do While Not EOF(1)
Line Input #1, tmp
If tmp <> "" Then
arr = Split(tmp, ",") '这里是以空格为分隔的,如果是逗号就用split(str,",")
If UBound(arr) > 0 Then
With MSFlexGrid1
    .rows = 51
    For j = 0 To .Cols - 1
    .Row = i
    .Col = j
    .Text = arr(j)
    .TextMatrix(j, 1) = Format$(arr(1), "c")
    .ColAlignment(j) = 3
    Next j
End With
If i = 50 Then Exit Do
i = i + 1
End If
End If
Loop
Close #1

2、VB 6.0绘制MsChart横纵坐标

With Chart1
    .TitleText = "TitleText "
    .ChartData = Data
    .SeriesType = 6
    .Plot.Axis(VtChAxisIdY).AxisTitle.Text = "Y"
    .Plot.Axis(VtChAxisIdY).ValueScale.Auto = True
    .Plot.Axis(VtChAxisIdY2).AxisTitle.Text = "Y2"
    .Plot.Axis(VtChAxisIdY2).ValueScale.Auto = True
    .Plot.Axis(VtChAxisIdY2).AxisTitle.Visible = True
    .Plot.Axis(VtChAxisIdY2).AxisTitle.TextLayout.Orientation = VtOrientationHorizontal
    .Plot.Axis(VtChAxisIdY2).ValueScale.Minimum = 0
    .Plot.Axis(VtChAxisIdY2).ValueScale.Maximum = 10
    .Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
    .Legend.Location.LocationType = VtChLocationTypeBottom
    .Plot.SeriesCollection(1).LegendText = "Legend1"
    .Plot.SeriesCollection(2).LegendText = "Legend2"
    .Plot.SeriesCollection(3).LegendText = "Legend3"
    .Plot.Axis(VtChAxisIdX).Labels(1).Auto = False
    .Plot.Axis(VtChAxisIdX).Labels(1).TextLayout.HorzAlignment = VtHorizontalAlignmentCenter
    For m = 1 To rows
        .Column = 1
        .Row = m
        n = 0
        If m Mod 1 = 0 Then
            n = n + 1
            .RowLabel = Xaxis(m)
        Else
            .RowLabel = ""
        End If
    Next m
End With

3、源代码

完整代码见:
源代码下载

4、参考链接

VB mschart控件的使用

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KmBase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值