Function SafeUBound(hoge, Optional div As Long) As Long On Error GoTo fin If div = 0 Then div = 1 SafeUBound = -1 SafeUBound = UBound(hoge, div) fin: End Function
Function SafeLBound(hoge, Optional div As Long) As Long On Error GoTo fin If div = 0 Then div = 1 SafeLBound = 0 SafeLBound = LBound(hoge, div) fin: End Function
Function IsNone(hoge) As Boolean Select Case VarType(hoge) Case vbEmpty, vbNull IsNone = True Case vbObject If hoge Is Nothing Then IsNone = True Case vbString If Len(Trim(hoge)) = 0 Then IsNone = True Case Is >= vbArray If ArrayEmpty(hoge) Then IsNone = True End Select End Function
Function ArrayEmpty(hoge) As Boolean 美しいコード End Function 0396デフォルトの名無しさん (オッペケ Sr1b-QbI6)2017/07/20(木) 01:50:57.43ID:IzREkzShr>>384を使って、
Function ArrayEmpty(hoge) As Boolean If SafeUbound < SafeLBound Then ArrayEmpty = True End Function
Function SafeUBound(hoge, Optional div As Long) As Long On Error GoTo fin If div = 0 Then div = 1 SafeUBound = -1 SafeUBound = UBound(hoge, div) fin: End Function
Function SafeLBound(hoge, Optional div As Long) As Long On Error GoTo fin If div = 0 Then div = 1 SafeLBound = 0 SafeLBound = LBound(hoge, div) fin: End Function
[OK][キャンセル]どちらでも True が返る。 0398デフォルトの名無しさん (ワッチョイ 473d-pqVL)2017/07/20(木) 02:46:26.38ID:2lo8GEfG0>>396 Function RBound(hoge, Optional div As Long) As Long On Error Resume Next If div = 0 Then div = 1 RBound = UBound(hoge, div) - LBound(hoge, div) + 1 End Function
Function IsNone(hoge) As Boolean Select Case VarType(hoge) Case vbEmpty, vbNull IsNone = True Case vbObject IsNone = hoge Is Nothing Case vbString IsNone = Len(Trim(hoge)) = 0 Case Is >= vbArray On Error Resume Next IsNone = UBound(hoge) < LBound(hoge) End Select End Function
MSQueryと違って、列名が出ないじゃん。 いや、ヘッダのON・OFFで無理矢理出せるけど、 そうするとUnionした時に、レコードの途中に列名が出やがる。(列名扱いされないから?) 列名は、出力位置の上に、予め書いとかなきゃいけないの? 0469デフォルトの名無しさん (アークセー Sx1b-SP9G)2017/07/22(土) 21:48:53.95ID:juX4uYOOx>>467 コレクションもどきって何? 配列もどきのコレクションとは違う何かかな? 0470デフォルトの名無しさん (アークセー Sx1b-SP9G)2017/07/22(土) 21:51:30.60ID:juX4uYOOx フォームを作ってるとき、同種のパーツのオブジェクト配列が簡単に作れたら良いのにって思うわ 0471デフォルトの名無しさん (ワッチョイ 473d-pqVL)2017/07/22(土) 22:39:49.33ID:WdXeAKAr0>>470 For Each x In Userform.Controls Select Case Typename(x) Case "Label" ... End Select Next