サブルーチンの中で Exit Sub や Exit Function していた場合はそれなりに工夫する必要がありますが、おおまかには
・Sub や Function をクラスにする
・ローカル変数をクラス変数にする(インスタンス化すると初期化されます。)
・サブルーチンは Sub に置き換え、Call で呼び出す。
という方法で書き換えられるかと思います。
例)
【VB6.0】
Private Sub Hoge()
Dim A As Integer
Dim B As Integer
On Error GoTo Err_Handler:
GoSub S1
GoSub S2
Exit Sub
S1:
A = 1
Return
S2:
B = A + 1
Return
Err_Handler:
MsgBox Err.Description, vbExclamation, Err.Source
End Sub
【VB.NET】
Private Sub Hoge()
Dim tmp As New CHoge()
tmp.Execute()
End Sub
Private Class CHoge
Dim A As Integer
Dim B As Integer
Public Sub Execute()
On Error GoTo Err_Handler
Call S1()
Call S2()
Exit Sub
Err_Handler:
MsgBox(Err.Description, vbExclamation, Err.Source)
End Sub
Sub S1()
A = 1
End Sub
Sub S2()
B = A + 1
End Sub
End Class
Class Foo
Private localString As String '←これ
Private Sub Hoge()
Dim tmp As New CHoge(Me)
tmp.Execute()
End Sub
Private Class CHoge
Dim A As Integer
Dim B As Integer
Dim Owner As Foo
Public Sub New(owner As Foo)
Me.Owner = owner
End Sub
Public Sub Execute()
On Error GoTo Err_Handler
Dim c As String
c = Owner.localString
Call S1()
Call S2()
Exit Sub
Err_Handler:
MsgBox(Err.Description, vbExclamation, Err.Source)
End Sub
Sub S1()
A = 1
End Sub
Sub S2()
B = A + 1
End Sub
End Class