第9講 プロシージャの学習

第3話 プロシージャの作り方

プロシージャには、2種類あります。
SubプロシージャとFunctionプロシージャです。
2つのプロシージャを作るのはとても簡単なことです。
まず、参考ファイルを開いてください。
数独
Private Sub CommandButton1_Click()
  
End Sub
Private Sub CommandButton2_Click()
  Rows("5:200").Select
  Selection.ClearContents
  Range("A1").Select
End Sub

Ctrl+F11をして、VBAを開いて頂ければお分かりのように、
CommandButton1_Clickのコードは空です。

では、Subプロシージャfを作ってみることにしましょう。
fはこれから作るプロシージャの名前です。
変数のときと同様に禁則さえ犯さなければ、
名前は自由につけることができます。
禁則とは
① 半角英数と_(アンダーバー)と-(ハイフン)以外は使ってはならない。
② 数字と_と-は先頭には使えない。
ですから、変数名と同じ禁則です。

さて、ではSubプロシージャfを作ってみましょう。
魔方陣
緑の四角のところでエンターして、
Private Sub CommandButton1_Click()
  
End Sub

Private Sub CommandButton2_Click()
  Rows("5:200").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
1行開けて、1行開けたところに
sub fと打ってエンターします。
すると、自動的に
Sub f()

End Sub
となります。
これで、Subプロシージャfができた訳です。
sub fと先頭は小文字であったにも関わらず、Sub f()
となっています。
Functionプロシージャgを作りたければ、
function g
と打ってエンターすれば良いのです。

では、Subプロシージャfのコードを次のようにしましょう。
Sub f()
  cells(5,1)="はじめてのSubプロシージャ"
End Sub
ところが、実行ボタンを押しても何も変わりありません。
当然です。
肝心のCommandButton1_Clickが空であるからです。
実行ボタンを押すとサブプロシージャCommandButton1_Clickが作動しますが、
コードが空なので、コンピュータは何もしないのです。
では、せっかく作ったSubプロシージャfに仕事をさせるにはどうしたらよいでしょうか。
Private Sub CommandButton1_Click()
  
f
End Sub
Sub f()
  Cells(5, 1) = "はじめてのSubプロシージャ"
End Sub
それはfを挿入するだけです。
fは『Subプロシージャfさん、業務を遂行をしてください』の意味です。
fを挿入して、実行ボタンを押すと、
入門とfが仕事をしたことが分かります。
fに仕事をさせるには、fの名前を呼ぶだけでよいのです。
呼ぶ=callでしたね。
Private Sub CommandButton1_Click()
  call f
End Sub
と変更して、実行ボタンを押してみてください。
入門
全く変わりありません。
call fはfをコールするという意味ですが、
単にfでも同じです。
単にfでもfをコールする、fを呼ぶ
という意味になります。
でも、私は
Private Sub CommandButton1_Click()
  
f
End Sub
とcallをつけない方が好きです。
fと名前を呼んだだけで、
仕事をSubプロシージャfに命令できます。
2つのSubプロシージャCommandButton1_Clickとfは対等な関係ですから、
命令というより、依頼したといった方が良いかもしれません。
C言語やJavaなどでは、絶対的な社長mainが居て、
mainは命令を下しますが、
誰からの命令も受け付けません。
VBAでは、絶対的な社長は居なくて、
すべてのプロシージャが対等な関係にあります。
ですから、誰でも、
他の人(実は自分に仕事を依頼することもできます。)に仕事を依頼できるのです。

では演習に入りましょう。
Subプロシージャを2つ作り、
それぞれのSubプロシージャ名をfとgとします。
fは、1から10までの和を求める計算を担当し、
gは、1から10までの積を求める計算を担当します。
Private Sub CommandButton1_Click()
  f
  g

End Sub
によって、
魔方陣
を実現するプログラムを考えてください。


第2話へ 第4話



トップ

初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba マクロ 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門

数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ