'とにかく合の人だけを返す
Function myGoukaku(rTest As Range)
Dim ar() 'Rangeの範囲のデータを入れる動的配列
ar = rTest 'セルの値が入る
Dim i As Integer, j As Integer
j = 1 'For文の中で使い始めで0だと飛ぶため。
ReDim arr(1 To UBound(ar, 1), 1 To UBound(ar, 2)) 'データ以上になることは無い
Dim ii As Integer 'arrの行番号用、列はjを使う
For i = 1 To UBound(ar, 1) '2次元配列の1番目、行。1から始めるのはrがRangeだから
If "合" = ar(i, 6) Then '6列目に合か否かがある
ii = ii + 1 'スタートが1なので先に1にしておく
For j = 1 To UBound(ar, 2) '2次元配列の2番目、列
arr(ii, j) = ar(i, j)
Next
End If
Next
myGoukaku = arr
End Function
Function hanntei(setu, tori, hou)
If setu + tori + hou <180 Then
hanntei = "不"
Else
hanntei = "合" '以下の判定前にとりあえず合
If setu < 40 Then hanntei = "不" 'Thenの内容が簡素なら一行の方が見やすい
If tori <40 Then hanntei = "不"
If hou < 40 Then hanntei = "不"
End If
End Function
Function hanntei(setu, tori, hou)
If setu + tori + hou < 180 Then
hanntei = "不"
Else
hanntei = "合" '以下の判定前にとりあえず合
If setu < 40 Then hanntei = "不" 'Thenの内容が簡素なら一行の方が見やすい
If tori < 40 Then hanntei = "不"
If hou < 40 Then hanntei = "不"
End If
End Function
'配列にRangeのデータを入れる
Function aa(r As Range)
Dim ar()
ar = r 'セルの値が入る
Dim i As Integer, j As Integer
For i = 1 To UBound(ar, 1) '2次元配列の1番目、行。1から始めるのはrがRangeだから
For j = 1 To UBound(ar, 2) '2次元配列の2番目、列
ar(i, j) = i & "," & j & "," & ar(i, j)
Next
Next
aa = ar
End Function
For i=1から始まることに注意。配列の要素番号は0から始まるのが普通だが、動的配列ar()にRangeを入れると要素番号/インデックス番号は1から始まる。
'配列にRangeのデータを入れる
Function myTenplate(r As Range)
Dim ar() 'Rangeの範囲のデータを入れる動的配列
ar = r 'セルの値が入る
Dim i As Integer, j As Integer
j = 1 'For文の中で使い始めで0だと飛ぶため。
Dim arr(1 To 100, 1 To 10) '関数値用。スタートを1にして列のjをそのまま使う。1000くらいにやると重く、飛ぶことも。
Dim ii As Integer 'arrの行番号用、列はjを使う
For i = 1 To UBound(ar, 1) '2次元配列の1番目、行。1から始めるのはrがRangeだから
If i = 1 Or i = 3 Then '条件、1と3の行だけ
ii = ii + 1 'スタートが1なので先に1にしておく
For j = 1 To UBound(ar, 2) '2次元配列の2番目、列
arr(ii, j) = i & "," & j & "," & ar(i, j)
Next
End If
Next
myTenplate = arr
End Function