| 
    
     |  | ▼やまごん さん: おはようございます。
 >[具体例]
 >A3からA10までの範囲に「DATA」と命名
 >B3からB10のセルに「=DATA+1」と記述すれば、Aの列の値に1を足した値を表示します。
 配列使わなくてもできるんですね、知りませんでした(メモメモ)。
 
 >function cal(X)
 >cal=x+1
 >end function
 >のマクロをつくり、C3からC10のセルに、=cal(data)としても、#VALUEとなります。
 '===================================================
 Function samp(nm As Range)
 Dim rng As Range
 Dim cr As Range
 If nm.Count = 1 Then
 Set cr = nm
 Else
 Set rng = Application.Caller
 Set wk = Application.Intersect(rng.EntireRow, nm)
 If Not wk Is Nothing Then
 Set cr = wk
 Else
 Set wk = Application.Intersect(rng.EntireColumn, nm)
 If Not wk Is Nothing Then
 Set cr = wk
 Else
 Set cr = Nothing
 End If
 End If
 End If
 samp = cr.Value + 1
 End Function
 
 引数nmをVariant型にした場合は、事前にデータの型のチェックも必要ですね。
 
 
 |  |