第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 入門 基礎から応用まで
数学研究室に戻る