| 
    
     |  | ▼AoYasu さん: 
 こんにちは
 
 ichinoseさんから、代表的な方法である配列利用がご紹介されました。
 私自信も、これをよく使います。もう1つも代表的な(?)方法であるユーザー定義構造体を使う方法と
 もう1つ、これは、できるよ ということで、わかりにくくなるので、私自身は、なるべく使わないように
 していますが、ByRef(省略すれば ByRefです)機能を使う方法です。
 
 Test1 と GetProc1 の組み合わせが前者、Test2 と GetProc2 の組み合わせが後者です。
 
 Option Explicit
 
 Type RtnData   '名前は任意に
 ans1 As String
 ans2 As Long
 ans3 As Long
 End Type
 
 Sub Test1()
 Dim myAns As RtnData
 
 myAns = getProc1(Range("B5"))
 MsgBox myAns.ans1
 MsgBox myAns.ans2
 MsgBox myAns.ans3
 
 End Sub
 
 
 Function getProc1(target As Range) As RtnData
 getProc1.ans1 = target.Address
 getProc1.ans2 = target.Row
 getProc1.ans3 = target.Column
 End Function
 
 '======================================
 
 Sub Test2()
 Dim ans1 As String
 Dim ans2 As Long
 Dim ans3 As Long
 
 Call GetProc2(Range("B5"), ans1, ans2, ans3)
 MsgBox ans1
 MsgBox ans2
 MsgBox ans3
 
 End Sub
 
 Sub GetProc2(target As Range, ans1 As String, ans2 As Long, ans3 As Long) 'Function仕立てでもよろしいのですが
 ans1 = target.Address
 ans2 = target.Row
 ans3 = target.Column
 End Sub
 
 
 |  |