|
▼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
|
|