プログラムを作成する時に機能単位にメソッドを作成することがよくあります。そうすることによって、同じ処理を何度も書かなくてもよくなります。また、いろいろな場所からそのメソッドを呼ぶだけで、同じ処理が出来るようになります。これは構造化プログラミングのすばらしいところです。
しかしメソッドを呼ぶだけでいいからといって、あちこちで同じメソッドを呼んでいないでしょうか?もし一つのメソッドだけ呼べば処理が完結していたものが、必ず別の処理も合わせて行わなければいけなくなったとします。そうした場合そのメソッドを呼んでいる全ての箇所に対して、もう一つのメソッドを呼ぶ処理を追加しなくてはいけません。これは非常に大変です。
そこでメソッドを呼ぶための別のメソッドを用意します。そうすることにより、そのメソッドを変更するだけで修正が出来るようになります。また、メソッドを別のオーバーロードされた形で呼ぶように変更したいといった場合なども、同じようにすることで簡単に修正ができます。
それでは例を見てみましょう。
・同じメソッドを複数の箇所から読んでいるパターン
これは一つの機能を持ったメソッドです。
Public Sub UkiUki
End Sub
そして次にこのメソッドをあちこちで呼んでいる処理の例です。
Public Sub Hoge
...
Me.UkiUki
...
End Sub
Public Sub Foo
...
Me.UkiUki
...
End Sub
もしここで、 UkiUki メソッドを呼んだ後に WakuWaku メソッドも必ず呼ばなくてはいけなくなったとします。そうした場合に次のようにしていては大変です。
Public Sub Hoge
...
' メソッドを呼ぶだけ
Me.UkiUki
Me.WakuWaku
...
End Sub
Public Sub Foo
...
' メソッドを呼ぶだけ
Me.UkiUki
Me.WakuWaku
...
End Sub
・メソッドを呼ぶ別のメソッドを用意しているパターン
UkiUki メソッドを呼ぶ別のメソッドを用意します。
Public Sub Feel
Me.UkiUki
End Sub
そして、UkiUki メソッドを直接呼んでいた処理は UkiUki メソッドを呼ぶメソッドを呼ぶようにします。
Public Sub Hoge
...
Me.Feel
...
End Sub
Public Sub Foo
...
Me.Feel
...
End Sub
すると修正する箇所は Feel メソッドだけになります。
Public Sub Feel
' メソッドを呼ぶだけ
Me.UkiUki
Me.WakuWaku
End Sub