VB6.0初級講座(前半)

VB中学校初級の要点のみをかいつまんだとも、ただのメモとも取れるページ
初級講座は全30回
うち、前半をまとめた。後半をやるかは未定

第1回:色
Private Sub Command1_Click()
  Form1.BackColor = 1523
End Sub
Form1.BackColor =  Form1の背景色を指定する Form1.BackColor = 1523  ボタンを押した時にForm内を指定の色にする。色は60000色以上ある。 Form1.BackColor = RGB(255, 100, 80 )  色を混ぜる関数RGB(赤,緑,青)の順。 Form1.BackColor = vbRed  vb→VB定数と呼ばれ、VBに予め定義されているもの。カラー定数は8色ある。 実行結果
第2回:図形描く
Private Sub Command1_Click()
Me.Line(0, 0) - (1000, 2000), RGB(255, 0, 0)

End Sub
Me 自分、この命令が実行されている場所を指す今回はMe=Formになる。 実行結果
第3回:変数
Dim Kazu As Long

Private Sub cmdInput_Click()
 Kazu = InputBox("数字を入力してください。")
End Sub

Private Sub cmd2_Click()
 MsgBox Kazu * 2
End Sub

Private Sub cmd3_Click()
 MsgBox Kazu * 3
End Sub

※プロパティのオブジェクト名とプログラム中のcommandの名前を一緒にしないと動かない。
Dim Kazu As Long
「Dim 変数 As 型」と使う。
Dimが変数を宣言するステートメントで、Asが変数の型を指定するステートメント
宣言が有効な範囲に注意。

MsgBox
文字を表示する関数。

実行結果


第4回:関数 初歩的な関数
Fix
小数点以下の数値を切り捨てて返す関数
Len
文字列の文字数を返す関数
LCase
文字列中のアルファベットを小文字にして返す関数
Left
文字列の左から指定した文字数分だけ文字列を切り取って返す関数
Right
文字列の右から指定した文字数分だけ文字列を切り取って返す関数
Mid
文字列の指定した位置から指定した文字数分だけ文字列を切り取って返す関数
Trim
文字列の前後のスペースを削除して返す関数
StrConv
文字列をいろいろと変換して返す関数
Abs
絶対値を返す関数
Sin
正弦を返す関数
Sqr
正の平方根を返す関数
Beep
音を鳴らす関数
Picture
背景の画像をあらわすプロパティ
LoadPicture
画像ファイルから画像を読み込んで返す関数
第5回:条件判断
Private Sub Command1_Click()
  If Text1.Text = "ワシントン" Then 
    MsgBox "正解"
  ElseIf Text1.Text = "アダムズ" Then
    MsgBox "おしい。アダムズは2代目の大統領です。"
  Else
    MsgBox "残念でした"
  End If
End Sub
 
Private Sub Form_Load()
  Label1.Caption = "アメリカの初代大統領は?"
End Sub
用法: If 条件 Then 条件に合致した場合の処理 Else 条件に合致したかった場合の処理 End If ・If文の中で And や Or を使うことで複雑な条件判断ができる。 実行結果
Private Sub Command1_Click()
  Select Case Day(Now)
    Case 1
      MsgBox "今日から新しい月ですね!"
    Case 2 To 15
      MsgBox "まだまだ月の前半ですよ。"
    Case 16, 17, 18
      MsgBox "そろそろ月も半ばを過ぎましたね。"
    Case Is >= 19
      MsgBox "もうすぐ次の月です。"
  End Select
End Sub
用法: Select Case 元となる式   Case 比較する式1    「元となる式」と「比較する式1」が一致する場合の処理を書く   Case 比較する式2    「元となる式」と「比較する式2」が一致する場合の処理を書く   Case Else    「元となる式」がどの式とも一致しなかった場合の処理を書く End Select 実行結果
第6回:繰り返し処理
Private Sub Form_Click()
    Dim K As Long    
    Me.BackColor = vbBlack

  For K = 100 To 100000 Step 100
      Circle (ScaleWidth / 2,ScaleHeight / 2), K, RGB(0, 255, 0)
  Next K
End Sub

For 変数 = 始まり To 終わり Step 区切
     繰り返させたい処理
Next 変数
Circle (横中心座標, 縦中心座標),  大きさ,  RGB(0, 255, 0)

ScaleWidth  ScaleHeight
フレームの横(縦)の大きさを返す。

実行結果


Dim X As Long
X = 1
Do Until X > 100
    X = X + X
    Debug.Print X
Loop

Do Until 条件
    繰り返したい命令
Loop
Debug.Print
イミディエイトウィンドウに出力する。
イミディエイトウィンドウを表示するにはVBの[表示]メニューから[イミディエイトウィンドウ]をクリックする。

実行結果
第7回:コントロールを使う
Private Sub Command1_Click()
    MsgBox "X座標(よこ): " & Command1.Left & " Y座標(たて): " & Command1.Top
    Command1.Left = 0
    Command1.Top = 0
    Command1.Width = 200
    Command1.Height = 2000
End Sub


Private Sub Command2_Click()
    Picture1.Visible = False
End Sub


Private Sub Command3_Click()
    Command2.Enabled = False
    Label1.Caption = "こんにちは!"
End Sub

Caption	表示する文字を設定する。    「キャプション」と読む。
Enabled	有効、無効を設定する。True か False で。    「イネイブルドゥ」と読む。
Height	たての幅を設定する。
Left	横の位置を設定する
Text	表示する文字を設定する(テキストボックスで)        「テキスト」と読む。
Top	たての位置を設定する
Visible	見えなくする。True か False で。    「ビジブル」と読む。
Width	横の幅を設定する。

実行結果
  
第8回:ピクチャーボックスとイメージ
Private Sub Picture1_Click()
    Picture1.Print "好きときめきとキス"
End Sub

Private Sub Picture1_DblClick()
    MsgBox "イメージがダブルクリックされました"
    Picture1.Cls
End Sub

Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
    Picture1.AutoSize = True
    Picture1.Picture = LoadPicture("C:\Windows\雲.bmp")
End Sub

共通の機能
・画像を表示する
        Image1.Picture = LoadPicture("C:\Windows\雲.bmp")
・画像を消す
        Image1.Picture = LodaPicture("")
・わく の表示、非表示を切り替える
        Image1.BorderStyle = 0
        	0 表示しない 1 表示する
・わく の形を設定
        Image1.Appearance = 0
        	0 平面的 1 立体的

イメージの機能
・画像を変形する
        Image1.Stretch = True
        False 変形モードオフ(変形しないで自動的にサイズを調節する)
        True   変形モードオン

ピクチャーボックスの機能
・サイズを画像に合わせて自動調節する
        Picture1.AutoSize = True
        False 自動調節しない。
        True  自動調節する
・文字を表示する
        Picture1.Print "しめじめし"
・文字を表示する位置を設定する
       Picture1.CurrentX = 300
      Picture1.CurrentY = 100
・文字やグラフィックを消す
        Picture1.Cls

実行結果
 
第9回:テキストボックス ラベル
Private Sub Command1_Click()
  Dim St As String
  St = Text1.Text
  MsgBox "こんにちは " & St & " さん"
End Sub

Private Sub Command2_Click()
  Label1.Caption = "これが1行目で" & vbNewLine & "これが2行目になります。"
  Text1.Text = "こんばんは"
  Label1.FontSize = 13
End Sub

Label1.Caption = "文字" & vbNewLine & "文字2"
Text1.Text = "文字"
ラベル、テキストボックスに文字を表示させる。
vbNewLineは改行

Label1.FontSize = 13
フォントサイズの変更

Text1.Text
テキストボックス内の文字を表す

実行結果
 
第10回:タイマー
Private Sub Command1_Click()
    Timer1.Enabled = True
End Sub

Private Sub Form_Load()
    Image1(0).Picture = LoadPicture("C:\anim\anim1.gif")
    Image1(1).Picture = LoadPicture("C:\anim\anim2.gif")
    Image1(2).Picture = LoadPicture("C:\anim\anim3.gif")
    Image1(3).Picture = LoadPicture("C:\anim\anim2.gif")
End Sub

Private Sub Timer1_Timer()
    Static Gazou As Integer
    Gazou = Gazou + 1
    If Gazou = 4 Then Gazou = 0
    Picture1.Picture = Image1(Gazou).Pictur
End Sub
Timer1.Enabled = True タイマーを動かす Image1(0).Picture = LoadPicture("C:\anim\anim1.gif") CドライブにあるGIF形式の画像を取り出し、Image1(0).Pictureに格納 Private Sub Timer1_Timer() プロパティの[Intrbal]で時間を調整し、一定時間ごとにSub Timer内のコマンドを実行する。


第11回:リストボックス と コンボボックス
Private Sub Form_Load()
    With List1
        .AddItem "日本"
        .AddItem "アメリカ"
        .AddItem "中国"
    End With
End Sub

Private Sub List1_Click()
    Dim St As String
    St = List1.Text
    Select Case St
        Case "日本"
            MsgBox "こんにちは"
        Case "アメリカ"
            MsgBox "ハロー"
        Case "中国"
            MsgBox "ニーハオ"
    End Select
End Sub

 With List1
        .AddItem "日本"
        .AddItem "アメリカ"
        .AddItem "中国"
    End With
	リストボックスの使い方。「List1.AddItem "日本"」を一行ずつ書いてもいい。

実行結果


第12回:オプションボタンとチェックボックス
Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long

Private Sub Command1_Click()
    If Option1.Value = True Then Me.FillColor = vbRed
    If Option2.Value = True Then Me.FillColor = vbBlue
    If Option3.Value = True Then Me.FillColor = vbYellow
    Paint 3000, 3000
End Sub

Private Function Paint(X As Long, Y As Long)
    Dim T
    T = Screen.TwipsPerPixelX

    ExtFloodFill Me.hdc, X / T, Y / T, vbBlack, 0
    Me.Refresh
End Function

Private Sub Form_Load()
    Form1.AutoRedraw = True
   Form1.FillStyle = 0
    Line (3000, 500)-(1000, 3964)
    Line -(5000, 3964)
    Line -(3000, 500)
End Sub

オプションボタン
Option1.Value = True
Option2.Value = True
Option3.Value = True
Form中で一つしかチェックがつけられない

チェックボックス
使い方は同じ。一つのForm内で複数個のチェックを付けることができる。
チェックの有無を確認する際も
If Check1.Value = vbChecked Then 
となり、Trueではないので注意
※今回はAPIを使用している。APIに関連する部分は後に触れることにする。

実行結果
  


第13回:スクロールバー
Private Sub Form_Load()
    Picture1.Picture = LoadPicture("C:\Test.bmp")
    Picture1.Move 0, 0
    HScroll1.ZOrder 0
    VScroll1.ZOrder 0

End Sub
 
Private Sub Form_Resize()
    If WindowState = 1 Then Exit Sub

    HScroll1.Move 0, ScaleHeight - HScroll1.Height, ScaleWidth - VScroll1.Width
    VScroll1.Move ScaleWidth - VScroll1.Width, 0, VScroll1.Width, ScaleHeight - HScroll1.Height

    HScroll1.Max = ScaleWidth - Picture1.Width
    VScroll1.Max = ScaleHeight - Picture1.Height

End Sub
 
Private Sub HScroll1_Change()
    Picture1.Left = HScroll1.Value

End Sub
 
Private Sub VScroll1_Change()
    Picture1.Top = VScroll1.Value

End Sub