Top / プログラミングテクニック / 07.スパゲティを防ぐために

よく、こんなプログラムを目にします。

Private Sub Command1_Click()
   Screen.MousePointer = vbHourglass
       ・
       ・
   If なんたらかんたら Then
       Screen.MousePointer = vbDefault
       Exit Sub
   End If
       ・
       ・
   Screen.MousePointer = vbDefault
End Sub

コマンドボタンがクリックされたら、マウスを砂時計にして、処理をしていき、何かの条件で、サブルーチンを抜けます。 このとき、マウスが砂時計のままではまずいので、もとに戻して、Exit Sub を行っています。

条件がひとつ、ふたつなら良いのですが、これが、5つ、6つになると非常に面倒くさいですね。 また、ファイルのオープンや、クローズなども絡めると、わけがわからなくなります。

こういう場合は、サブルーチンを使いましょう。

Private Sub Command1_Click()
   Screen.MousePointer = vbHourglass
   Call subCommand1_Click
   Screen.MousePointer = vbDefault
End Sub

Private Sub subCommand1_Click()
       ・
   If なんたらかんたら Then Exit Sub
       ・
End Sub

ファイルをオープンする場合、サブルーチンの外でオープンし、ファイルNOを引数にもたせ、サブルーチンを呼びます。

Private Sub Command1_Click()
   Dim intFNo As Integer

   Screen.MousePointer = vbHourglass

   intFNo = FreeFile
   Open "AAA" For Input As #intFNo

   Call subCommand1_Click(intFNo)

   Close #intFNo
   Screen.MousePointer = vbDefault

End Sub

Private Sub subCommand1_Click(ByVal intFNo As Integer)

   If なんたらかんたら Then Exit Sub

End Sub



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2009-10-25 (日) 23:55:56 (2800d)