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