初級講座は全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
|
|
|