VISUAL BASIC
劉 建華
2004.11.10
1
VB と VBA
Visual Basicは可視化対象プログラム言語である.それを使っ
て,正式のWindows風のプログラムを作ることができる.
Visual Basicの一部の機能は,Microsoft Excelの中に取り入れ
られ,Visual Basic Applicationと呼ばれる(略称はVBA).VBAは,
VBより機能が少ないが,基礎の部分が同じである.
これからVBAを用いて,下の二つの内容を紹介することにする.
Excel
Visual
Basic
基礎
応用
VBA
基礎
2. ExcelでVBAの応用
1. VBプログラム製作の基礎2
(1/4) Enter the Editor
Excelで ツール ー> マクロー> Visual Basic Editor
新しいWindowが現れる.
3
(2/4) Add a UserForm
新しいWindowのメニューで
挿入ー>ユーザーフォーム
小さいWindowが現れる.
タイトルバーにUserForm1と書か
れている.
4
(3/4) Interface of the Editor
これが,Visual Basic Editorのインターフェイスで
ある.後ほど詳しく説明する.
5
(4/4) Modify the Font of Code
新しいWindowのメニューで
ツールー>オプション
右のダイアログが現れる.
エディタの設定ー>サイズ
16と設定してください.
6
(1/3) Simple Program (Add Button)
一緒に簡単なプログラムを作る.
1. UserForm1でボタンを作る.
②ドラッグする
①クリックする
7
(2/3) Simple Program (Add TextBox)
2. ボタンの下で,テクストボックスを作る.
①クリックする
②ドラッグする
8
(3/3) Simple Program (Add Code)
3. ボタンをダブルクリックして,コードのWindowが現れる.
①ダブルクリックする
②このWindowが現れる
Private Sub CommandButton1_Click()
TextBox1.Text = 2004
End Sub
③ここにコードを入力する.
一つの簡単なプログラムができた.
9
Run The Program
ツールバー中の三角
をクリックして,プログラムを実行する.
実行すると,
右のようなWindowが現れる.
ボタンをクリックすると,テキスト
ボックスの中にコードに書いた文
字が現れる.
Windowの右上の×をクリック
すると,プログラムが終了する.
2004
10
Feather of Visual Basic
1.インターフェイス
–C,Fortranなどは,インターフェイスがない.
–Visual Basicが,インターフェイスを持っている.
可視化言語である.図や表を作ることができる.
インターフェイスを自分で自由にデザインできる.
2.コンパイルの仕方
–C,Fortranなどは,実行すると,すぐ計算する.
–Visual Basicは,実行しても,操作(例えば,ボ
タンを押すなど)しなければ,待機する.操作して
から,動き始める.必要に応じて,多くのことがで
きる.
11
(1/4) Example Program 1
Visual Basicを説明しながら,次のプログラムを作る.
長方形の長さと幅を入力して,面積と対角線長さ
を計算するプログラム
1.
2.
3.
準備
Formの設計
Codeの編集
12
(2/4) Create a New UserForm
メニューバーから選択する.
挿入ー>ユーザーフォーム
新しいUserFormが現れる.
タイトルバーにUserForm2と
書かれている.
13
(3/4) Interface of Visual Basic Editor
Code/Form Switch
Run Pause End
Project
Explorer
Property
Window
UserForm
Window
Control
Tool Box
14
(4/4) Design of Form & Code
VBプログラムはFormとCodeという二つの部分から成
り立っている.プログラムを設計する時は,各々を設計し
なければならない.
UserForm
Code
15
(1/8) Design Form
Formの設計
Formにコントロールを置く
コントロールのPropertyを設定する
16
(2/8) Control in ToolBox
ツールボックス中に,たくさんのコントロールがある.
計算するプログラムを作るとき,よく使用するのは,次の
四つのコントロールである.
Label
TextBox
ScrollBar
CommandButton
Formをクリックすると,ツールボックスが現れる.ツールボックス
が現れない場合は,上のツールバー中の
ボタンを押すと,
17
それが現れる.
(3/8) Property Window
Formの中に.あるコントロールを置く.このコントロール
をクリックすると.左下のProperty Windowに,このコン
トロールについてのPropertyが表示される.
Property
Window
右クリック
メニュー
Property Windowが表示されない場合,コントロールを右クリックし
18
て,
[プロパティ]を選択すると, Property Windowが現れる.
(4/8) Property of Control
Caption
(オブジェクト名)
Top
Font
Width
CommandButton
Left
BackColor
Height
ForeColor
Visible
コントロールには,たくさんのpropertyがある.
19
(5/8) Edit the Property
Formの中に.コントロールをクリックして,左下のProperty
Windowに,左列のPropertyをクリックして,そして右の枠で,
コントロールについてのPropertyが入力できる.
①クリックする
②クリックする
③新しい文字を入力する
20
(6/8)Change the Property
Propertyの設定は,
編集するとき手作業で設定できる.
実行するときコードで変更できる.
編集時
実行時
21
(7/8) Click the Control
クリックの仕方による,作業の違い
一回クリックすると.コントロールが選択される.Property
Windowで,そのコントロールのPropertyを設定できる.
ダブルクリックすると.コントロールについてのCodeが現れる.
Formに戻りたい場合は,左上のswitchを使う.
右クリックすると,メニューが現れる.
[プロパティ]又は[コードの表示]を選択できる.
一回クリックして,もう一回クリックすると,
LabelとCommandButtonの場合は,表の文字
を編集できる.(推奨できない.コントロールの
外で一回クリックして,編集を取消す)
22
(8/8) Draw the Interface
コントロールを載せる前に,Formをクリックして,そのPropertyの
Font中のSizeを16 に設定する.以後,置かれたコントロールでは
,FontのSizeが自動的に16に設定される.
①クリックする
②クリックする
③クリックする
④クリックする
23
(8/8) Draw the Interface
Formに,コントロールをのせて,文字を変えて,右下のイン
タフェイスを作る.
Label,CommandButton上の文字はCaptionのPropertyである
TextBox中の文字はTextのPropertyである
24
(1/4) Code of Control
あるコントロールをダブルクリック
すると,CodeのWindowが現れ
る.このコントロールについての
Codeを編集できる.
①ダブルクリックする
②コードが現れる
25
(2/4) Code of CommandButton1
CodeのWindowの中に,次のコードを入力.
Dim
Dim
Dim
Dim
a
b
s
d
As
As
As
As
Single
Single
Single
Single
変数宣言
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
値を取得する
b = Val(TextBox2.Text)
s = a * b
d = Sqr(a * a + b * b)
値を計算する
TextBox3.Text = s
TextBox4.Text = d
値を表示する
End Sub
入力する時,大文
字と小文字を区別
しない.数式中の
スペースを入力し
なくてもよい.自
動的に直される.
26
(3/4) Code of Exit Button
Formに戻って,
Exit ボタンをダブルク
リックして,次のCode
を入力する.
Dim d As Single
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
s = a * b
d = Sqr(a * a + b * b)
TextBox3.Text = s
TextBox4.Text = d
End Sub
①ダブルクリックする
Private Sub CommandButton2_Click()
End
②コードを入力する.
End Sub
これで,このプログラムの作成ができた.
27
(4/4) Run the Program
ツールバー中の三角
20
30
をクリックして,プログラムを実行する.
40
30
600
1200
36.05551
50
Calculateボタンをクリックすると,計算が行われ,結果が
表示される.新たに,a と b の数値を入力して,もう一度計
算すると,それらの数値に対応した結果が表示される.
Exitボタンをクリックすると,プログラムが終了する.
28
Method of VB
VBプログラムの設計とは,Form と Code の二つの部分である.
これは,VBの考え方である.
コントロールを
Formに置く.
コントロールで
イベントがおきる.
コントロールの
Property を設定する
作業する
(計算ー>結果表示)
Form
Code
29
Exercise Problem 1
新しいユーザーフォームを挿入して,次のプログラム
を作る.
立方体の長さと広さと高さを入力して,体積と表面積
を計算するプログラム
30
(1/4) Example Program 2
n
SUM=13+23+33+...+n3
SUM   i 3
i 1
上式のような計算を行うプログラムを作る.
インターフェイスは下図のようにする.
n=
ScrollBar
Property:
Max : 1000
Min : 0
31
(2/4) Plan of Program
n=
プログラムを設計する前,各
コントロールの作業を設計しな
ければならない.
イベント
作 業
TextBox1の数値が入力されると
ScrollBarの値を変える
ScrollBarの値が変わると
TextBox1の数値を変える
Calculateボタンがクリックされると 計算して,結果を表示する.
Exitボタンがクリックされると
終了
32
(3/4) Code of Program
Private Sub CommandButton1_Click()
n = Val(TextBox1.Text)
n
For i = 1 To n
3
SUM

i
Sum = Sum + i * i * i
i 1
Next i
TextBox2.Text = Sum
End Sub
Private Sub CommandButton2_Click()
s = MsgBox("Are you sure to quit?", vbOKCancel)
If s = 1 Then End
End Sub
Private Sub ScrollBar1_Change()
n=
TextBox1.Text = ScrollBar1.Value
End Sub
Private Sub TextBox1_Change()
ScrollBar1.Value = Val(TextBox1.Text)
End Sub

33
(4/4) Run the Program
n=
n=
n=
数値を入力の替わりに,ScrollBarをスクロールして,
nの値を変化させることができる.
Exit ボタンがクリックされたあと,Dailogが出て来る,
OKをクリックすると,終了する.
34
More Function of VB
VBA の機能に制限がある.
VBでは,PictureBoxとTimerというコントロールを使って,
図表や動画などが作れる.
VBを使うと,上図のようなリアルタイムの結果表示もできる.
35
VBを使うと,独立の*.exeファイルを作成できる.
VBA in Excel
Excel では,簡単な関数計算や関数グラフ作成がで
きる.しかし,∑Sin(nx),定積分などの計算は,直接
できない.
Excel では,VBAを使うことで,複雑な関数の計算,
グラフ作成などの作業ができる.
Excel
Visual
Basic
基礎
これから
応用
VBA
ExcelでのVBAの応用
基礎
について紹介する.
36
(1/7) Add the ToolBar
Excelで,VBAを使うために,ツールバーの追加が必要.
Excelで,ツールバーで右クリックして,ショットカットメニュー
が現れる.Visual Basicとコントロールツールボックスを選択
すると,次の二つのツールバーが現れる.
使いやすくするため,それらをツールバーに並べる.
①右クリックする
②選択する
③移動する
37
(2/7) Use Sheet As Form
ワークシートをUserFormとして使う.
その中に,コントロールを置いて,Formの設計ができる.
ツールバーのコントロールボタンを
クリックすると,小さいツールボタン
が現れる.同じボタンがあるので,こ
れを消してもよい.
38
(3/7) Edit the Property of Control
コントロールを右クリックして,[プロパティ]を選択す
ると,PropertyのWindowが現れる.そこで,コントロー
ルのPropertyの編集ができる.
39
(4/7) Edit the Code
コントロールをダブルクリックすると,EditorのWindow
が現れる.ここで,そのコントロールのコードを編集できる.
Form編集
Code編集
タスクバーで,Excelを選択すると,Form編集ができる.
40
(5/7) Edit & Run
先ほどの小さいボタンが,Down(押されたまま)の状態だった
ら,編集状態である.コントロールの編集,調整,コード編集など
ができる.
ボタンがUp(押されていない)の状態だったら,実行状態であ
る.コントロールをクリックすると,コードの内容を実行する.
41
(6/7) Cells(Row, Column)
Excelで,VBAのプログラムを設計する時,TextBoxとLabel
の替わりに,Excelのセルを利用できる.Cells(Row,Column)
のふうに使われる.
x = Cells(1, 2)
Cells(3, 2) = x * Sin( x )
Cells(1,2)
Cells(3,2)
42
(7/7) Example Program 3
Cells(1,2)
Cells(3,2)
① ダブルクリックする
Private Sub CommandButton1_Click()
x = Cells(1, 2)
‘ n = Val(TextBox1.Text)
Sum = x * Sin( x )
Cells(3, 2) = Sum
‘ TextBox2.Text = Sum
②コードを入力する
End Sub
実行状態にする.ボタンをクリックすると,結果がB3に現れる.
B1に数値を再入力して,Enterキーを押して,ボタンをクリック
すると,新しい結果が現れる.
43
Exercise Problem 3
同じワークシートで,他のボタンを作って,次の計
算を行うプログラムを作る.
1.円柱の高さと底面半径を入力して,体積と表面積
を計算するプログラム.
2. 次式の結果を計算するプログラム.
3
y   exp(x )dx
2
0
44
(1/4) Draw the Graph
Excelにおける,関数グラフの描き方
*数式により,横座標に対応する,縦座標を計算する.
*Excelの図表作成機能を使って,グラフを作る.
f(8
f(7 )
)
y = f (x)
f(4
f(3 )
f(1 f(2 )
) )
f(0
)
0
1
2
3
4
5
6
7
8
45
(2/4) Think About the Graph
a.VBAプログラムによって,セルに書き込める.
Cells(x,y)=a
b.繰り返し文によって,多くのセルに書き込める.
For-Next などの繰り返し文
c.多くのセルの値によって,Excelで図表作成できる.
このように考えると,Excelで,VBAを使って,グラフを作
成できそうなことが分かる.
46
(3/4) Create the Graph
VBAを使って,グラフを描くときの手順を以下に示す.
①プログラムによって,セルに値を書き込む.
②手作業で,セルを選択して,グラフを作る.
47
(4/4) Flow Chart of Program
係数を読込み(あれば)
Xに初期値を与える
この中に,
複雑な計
算が行う
Yの値を計算する
X,Yの値をセルに書込み
Xに微小の量を足す
Xの値が制限を超えない ->
終了
48
(1/6) Example Program 4
Y=Sin(a*x) のグラフを描く.
Sheet2に移す.セルに文字を入れて,ボタンをのせる.
をこ
入こ
れに
よ数
う値
49
(2/6) Code of Example Program 4
Private Sub CommandButton1_Click()
a = Cells(4, 5)
Row = 1
x = 0
st:
y = Sin(a * x)
Cells(Row, 1) = x
Cells(Row, 2) = y
x = x + 0.05
Row = Row + 1
If x <= 6.3 Then GoTo st
End Sub
ボタンをダブルクリック
して,コードを入力する.
50
(3/6) Run the Program
ボタンをクリックして,実行状態にする.
CommandButtonをクリックすると,セルに数値が入る.
51
(4/6) Select the Cells
A1セルをクリックして,Ctrl と Shift キーを押したまま,方向
キー → を押して,そして ↓ を押すと,数値が全部選択され
る.そして右側のScrollBarを使って,シートの上端に戻る.
① A1セルクリックする
② Ctrl と Shift → ↓ を押す
③ScrollBarを上端に移動する
52
(5/6) Draw the Graph
次に図表ボタン をクリックして,散布図を選択する.三番
目の線あり点なしの形式を選択して,関数のグラフを得る.
53
(6/6) Change the Efficient
aの値を再入力して,Enterキーを押して,ボタンをクリック
すると,グラフも自動的に変わる.
54
(1/4) Think About Improvement
セルを
クリックする
数値を
入力する
Enter
を押す
ボタンを
クリックする
今の操作が面倒だから,ScrollBar を利用できるようにする.
Buttonがクリックされる.
セルの値を読込む
ScrollBarが移動
ScrollBarの
値をセルに書込む
セルの値を読込む
作業をする
作業をする
55
(2/4) Use the ScrollBar
ScrollBarをのせて,右クリックすると,PropertyのWindow
が現れる.Min: 1,Max: 20 と設定する.
① ダブルクリックする
②ScrollBarを作る
③右クリックする
④[プロパティ]を選択する
⑤Propertyを編集する
56
(3/4) Code of ScrollBar
ScrollBarをダブルクリックすると, ScrollBarのCodeが現れる.
その上のCommandButton1中のコードをコピーして,ScrollBar1
のコードの中に貼り付ける.そして,一行目を入力する.
Private Sub CommandButton1_Click()
a = Cells(4, 5)
Row = 1
x = 0
Row = Row + 1
If x <= 6.3 Then GoTo st
End Sub
Private Sub ScrollBar1_Change()
st:
y = Sin(a * x)
Cells(Row, 1) = x
Cells(Row, 2) = y
x = x + 0.05
Row = Row + 1
If x <= 6.3 Then GoTo st
End Sub
①コードをコピーする.
Private Sub ScrollBar1_Change()
End Sub
②コードを貼り付ける
Cells(4, 5)=ScrollBar1.Value
a = Cells(4, 5)
Row = 1
x = 0
③コードを入力する
st:
y = Sin(a * x)
Cells(Row, 1) = x
Cells(Row, 2) = y
x = x + 0.05
Row = Row + 1
If x <= 6.3 Then GoTo st
End Sub
57
(4/4) Run the Program
実行状態にして, ScrollBarを移動すると,グラフが自動
的に変化する.前より,便利になる.
58
Exercise Problem 4
次のグラフをかくプログラム.(下図が完成図【参考用】)
59
Save the File
VBでは,作ったプログラムは,独立のファイルだから,vbp,frm
等の形式で保存される.exeファイルの作成もできる.
VBAでは,Excelファイル中に,プログラムを作ったら,そのプ
ログラムがExcelファイルの一部として存在する.つまり,Excel
ファイルを保存すると,そのプログラムも一緒に保存される.
Visual Basic
VBA in Excel
*.vbp
*.xls
*.frm
(VBA)
60
Open the File
VBAのプログラムを含んでいるファイル(doc,xls etc.)を開くとき,
次のダイアログが現れる.
それは,VBAで作ったウイルスが含まれている可能性があるか
らである.信用できる場合は“マクロを有効にする”を選択する.
“マクロを無効にする”を選択すると,ファイルを開いたときに,
VBAのプログラムを実行できない.ファイルを閉じて,もう一回開い
て,“マクロを有効にする”を選択し直すと,実行できるようになる.
61
(1/4)Comparision of Program
Basic
Fortran
C
...
VB
VF
VC
...
Formあり
Formなし
Formあり
VBを薦める理由:
①将来,積分及び∑計算,図表製作の機会がある.
②分かりやすいから,学びやすい.
③手に入れやすい(Officeに付属している.) .
④Wordなどのソフトで,マクロの高級な操作ができる.
⑤対象プログラムである.これを基礎として,他のソフト
にも使える.
62
(2/4) Object Programming
VBプログラムの設計とは,Form と Code の二つの部分で
ある.各々のコントロールについて,Propertyを編集して,
コードを書く,互いに制御する.これは,対象プログラムの
考え方である.
Private Sub
ScrollBar1_Change()
TextBox1.Text =
ScrollBar1.Value
End Sub
Private Sub
CommandButton1_Click()
n = Val(TextBox1.Text)
For i = 1 To n
Sum = Sum + i * i * i
Next i
TextBox2.Text = Sum
End Sub
Private Sub
TextBox1_Change()
ScrollBar1.Value =
Val(TextBox1.Text)
End Sub
Private Sub
CommandButton2_Click(
)
s = MsgBox("Are you
sure to quit?",
vbOKCancel)
63
If s = 1 Then End
(3/4) Applications of Object Programming
対象プログラムの考え方が理解できると,他のソフトを理解
する手助けになる.たとえば、Visual FoxPro,PowerBuilderな
どのデータベース処理のソフトである.
SIEMENSには,WinCC(Windows Control Center)という工
業自動制御ソフトがある.それを使用する際,生産制御のパソ
コン画面を設計する必要がある.
電気専門とコンピュータ専門の業者は生産プロセスが分かっ
ていない可能性が高い.そこで、化学工業技術者が自分の手
で画面設計できることが望ましい.その画面設計は対象プロ
グラムの延長上にある.
64
(4/4) Panel of Control System
64 ℃
20 %
Temperature Steam Valve
Water Level:
Water Valve:
OPEN
PLC
VIA001
FULL
CLOSE
CLOSE
クリックされると
クリックされると
VIA001=1
VIA001=0
65
Computer is a Tool
コンピューター言語は,計算の道具にすぎない.
プログラムを書く上で,より重要なことは,その内容である.
数値計算において,言語より計算の作動原理が大切で,難しい.
それに注意力を向けることが重要である.
実際応用
計算 原理 原則
コンピューター言語
66
Self-introduction
私は劉 建華と申します.
出身地は中国の東北地区の遼寧省です.
2000年北京理工大学を卒業しました.
その後二年間化学工業会社で働きました.
2002年10月日本に来ました.
一年間日本語学校で勉強しました.
2003年10月研究生として九州大学に入り
ました.
2004年3月修士として入学しました.
どうぞよろしくお願いします.
67
Acknowledgments
このスライドは下記のアドレスに掲載しております.
http://www.geocities.jp/zz961jp/lesson.htm
機械航空工学科の藤野さんから,スライドの校正していただき
ました.また,四講座の方々に御協力をいただきました.そして,
機械学科の坂口先生に,ビデオ設備を貸していただきました,
みなさまのお力を借りて,講座を行うことができました.
若輩者の私に,今回の講座を担当することをお許しいただい
た,松隈先生に心からの感謝を申し上げます.私にとって,かけ
がえのない経験になりました.
最後に御清聴いただいた皆々様,どうもありがとうございまし
た!
68
Copyright (C) 2004 Liu Jianhua
ダウンロード

VBについてのLESSON (ppt file,1M)