第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)
のように受け取るデータの型を指定します。

さて、それではこのプログラムを改良して
vba
渡すデータをエクセルシート上から与えられるように変更して
、
B6に数値を入れて実行ボタンを押すと、その2倍が表示されるように変更しましょう。
vb 実行visual
解答例は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)
と打ってエンターすればよいのです。
ではマクロをさらに改良して
basic→初心者→基礎
とできるようにしてください。

第9話へ 第11話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る