プロシージャの連携とユーザー定義関数 1

VBAトップへ」
   1 プロシージャの連携とユーザー定義関数
  プロシージャの部品化
  引数付きでプロシージャを呼び出す
  他のブックのプロシージャを呼び出す
  同一ブック内のプロシージャ呼び出しの制限
  参照渡しと値渡し
  プロシージャを強制終了する 
  Functionプロシージャ
  ユーザー定義関数
  


プロシージャの部品化

サブルーチンとは? [Subrouttine]
   利点:プロジャが読みやすくなる,デバッくしやすくなる,サブルーチンでほかのプロジャと共有できる、マクロが共有し易くなる。

先頭へ戻る


引数付きでプロシージャを呼び出す

   プロジャの共通化を柔軟にし合理的に部品化できる
 引数付きサブルーチンの特徴
   1 引数名は一致しなくてもよいが、引数の個数は 一致させる
   2 引数の順番は合わせる(但し名前付引数時は順不同可能です 例 名前付引数:= data)
Sub Test1_1()
Dim TpName As String
TpName = InputBox("誕生日を入力して下さい", "Test1_1")
If IsDate(TpName) Then
Call Test1_1Sub(CDate(TpName))
Else
    MsgBox "入力Dataが違います 終了": Exit Sub
End If
End Sub
Sub Test1_1Sub(TpName As Date)
MsgBox Format(TpName, "gg(ee): yyyy年mm月dd日(aaaa)生まれ") & vbCrLf & _
"   " & Fix(Year(Date) - Year(TpName)) & " 歳です"
End Sub
 

先頭へ戻る


他のブックのプロシージャを呼び出す

   Calステートメントを使ってプロシージャ呼び出しを明示する---明示的に使用(省略可能)
   参照設定で他のブックのプロシージャを呼び出す---Callステトメントを他のBookを参照のとき設定
   Runメソッドで他のブックのプロシージャを呼び出す
       参照設定必要なし 呼出し例 Application.Run "'C:\TpFod\DatFold\'Tembook.xls!Sample",Op1,OP2
 

先頭へ戻る


同一ブック内のプロシージャ呼び出しの制限

    他のモジュールにあるプロシージャを呼び出せなくする ---> Plaivateキーワード
 

先頭へ戻る


参照渡しと値渡し

  1.   参照渡しで引数を渡す- ByRefキーワードー
      値渡渡しで引致を渡す−Byvalキーワードー
      実引数をかっこで囲むと値渡しとなる ---- Call ステートメントを使用しない時

先頭へ戻る


プロシージャを強制終了する

  Exit SubステートメントとEndステートメント
  Endステートメントのもう1つの機能--- End ステトメントはすべての変数を初期化(Pubricを含む)
 

先頭へ戻る


Functionプロシージャ

プロシージャの種類  --->3個( Sub Function Property)
Functionプロシージャの役割  
     値を返す( 関数)
  Functionプロシージャを作成する
 

先頭へ戻る


ユーザー定義関数

  引数が1つのユーザー定義関数 
  引数が複数のユーザー定義関数
  ユーザー定義関数の制約
      セルの挿入、削除、書式設定
      セルの値の変更
      シートObject変更(名前削除移動)
      計算方法、画面表示変更
  ユーザー定表関数を自動再計算関数にする  --->Volatileメソード
    Function MyFunction(Ni as Integer)
       Application.Volatile
       Activecell(,0).value* Ni
    end Fanction
 


   先頭へ戻る   

中級・特別編トップへ