タイトル : Re: 引数の数を変動できる関数を作る方法について教えてください 投稿日 : 2008/03/25(Tue) 09:46 投稿者 : のぶ
K.J.K 様 戸豚 様 早速のレスありがとうございました 戸豚様わざわざ例文書いていただきありがとうございます。 ただ、私のイメージだとSum文のように sum(F1,F3,F6,A4) など、任意のセル位置を カンマで区切る引数をイメージしています。 実際に、どこからどこまでの 範囲では一応再現できています。 ======================================== Function hmsum(p As Object) nen = ActiveSheet.Name a = p.Address x1 = Sheets(nen).Range(a).Column xn = x1 + Sheets(nen).Range(a).Columns.Count - 1 y1 = Sheets(nen).Range(a).Row yn = y1 + Sheets(nen).Range(a).Rows.Count - 1 min1 = 0 min2 = 0 For x = x1 To xn 'x For y = y1 To yn 'y min1 = Val(Sheets(nen).Cells(y, x)) min2 = Val(min1) + min2 Next y Next x hmsum = min2 End Function excelのセルに =hmsum(C3:C11) みたいに指定すれば合計します。 ======================================== K.J.K 様のParamArray を調べてみました。 マイクロソフトのHPからそれらしい例文があり、動かしてみました。 ==================================== Sub Test() x = myfun(1) MsgBox x End Sub Function myfun(y As Integer, ParamArray myarr() As Variant) _ As Integer myfun = otherfun(y, myarr) End Function Function otherfun(y As Integer, ByVal myarr As Variant) As Integer otherfun = y * 2 End Function ======================================= 動き自体は、予想してたとおりできました。 セルの中にmyfun(1,F1,F2,F3)の様に直接式を入れることで再現できました^^ お二人とも初心者の質問に回答していただきありがとうございました。 |