第7講 結果を報告しない社員
第10話 引数(ひきすう)=社員に渡すデータ
簡単なプログラム例を出してから、
引数(情報、データ)の渡し方について説明することにしましょう。
次のようなプログラムを組んでみてください。
Private Sub CommandButton1_Click()
nibai (5)
End Sub
Private Sub CommandButton2_Click()
Rows("6:200").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
Sub nibai(a As Integer)
Cells(6, 2) = 2 * a
End Sub
実行結果
nibai (5)でnibaiという社員に5というデータを渡しました。
社員nibaiの任務は、仕事を依頼された方から渡された数値を2倍して、
エクセルシートのB6に表示することです。
データを受け取る社員を作る場合は
Sub nibai(a As Integer)
のように受け取るデータの型を指定します。
さて、それではこのプログラムを改良して
渡すデータをエクセルシート上から与えられるように変更して、
B6に数値を入れて実行ボタンを押すと、その2倍が表示されるように変更しましょう。
実行
解答例は30行下。
解答例
Private Sub CommandButton1_Click()
Dim a As Integer
a = Cells(6, 2)
nibai (a)
End Sub
Private Sub CommandButton2_Click()
Range("B6:B7").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
Sub nibai(a As Integer)
Cells(7, 2) = 2 * a
End Sub
wa a,b
(データが1つのときはwa(a)ですが、2つ以上のときはwa(a,b)ではなく、wa a,b です。
C++やJavaあたりではwa(a,b)でよいのですが、VBAでがwa a,b という気持ちの悪い形になります。
また、データが1つのときもwa a でもよいのです。
ですからデータが一つのときはwa(a)またはwa a
ですし、2つ以上のときはwa a,b
wa a,b,c などとなります。
ただし、Callを付ければ、
Call wa(a,b)
Call wa(a,b,c)
などとできます。
逆に、Callを付ける場合には、
Call wa a,b
Call wa a,b,c
とはできません。
ですから、常にCallをつけて、
Call wa(a)
Call wa(a,b)
Call wa(a,b,c)
とする方が統一が取れていいかもしれませんね。
)
とすれば、2つのデータを社員waに渡すことができます。
その際、waを作るには
Sub wa(a as integer,b as integer)
と打ってエンターすればよいのです。
ではマクロをさらに改良して
→→
とできるようにしてください。
第9話へ 第11話へ
vc++講義へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る