[[20130617175037]] 『(再)SPECIALCELLSが正常に働かない』(x11eUser) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『(再)SPECIALCELLSが正常に働かない』(x11eUser)

 テスト用に下記のプログラムを作りました。
 TESTCALLを実行すると期待通りの答えが出てきますが、
 TESTRUNを任意のセルに「=TESTRUN(B27:B36)」とセットして
 計算を実行したところ、Function TESTが実行されますが、
 このとき、SPECIALCELLSによって絞込みが行われません。
 どこに問題があるのかお手上げの状態になっています。
 どなたかお教え頂けないでしょうか。よろしくお願いします。
 (先ほど投稿しましたが、(未)マークが付かなかったので再投稿しました。

 EXCEL2003、WindowsXPで動かしています。

'------------------------------------------------
Sub TESTCALL()
Dim xRange As Range
Dim Ans

    Set xRange = Range("B27:B36")
    Ans = TEST(xRange)
End Sub

'------------------------------------------------
Function TESTRUN(xParam)
Dim xRange As Range
Dim Ans

    Set xRange = xParam
    Ans = TEST(xRange)
End Function
'--------------------------------------------------------------------
'   呼ばれるプログラム
'--------------------------------------------------------------------
Function TEST(xParams)
Dim xErrorMSG As String
Dim xObject
Dim xRange As Range
    On Error Resume Next
'    Set xObject = Selection
    Set xObject = xParams
    If TypeName(xObject) = "Range" Then
        With xObject
            Set xRange = .SpecialCells(xlCellTypeAllFormatConditions)
            Call ErrMSG2(xRange, Err.Number, "AllFormatConditions")
            Set xRange = .SpecialCells(xlCellTypeAllValidation)
            Call ErrMSG2(xRange, Err.Number, "AllValidation")
            Set xRange = .SpecialCells(xlCellTypeBlanks)
            Call ErrMSG2(xRange, Err.Number, "Blanks")
            Set xRange = .SpecialCells(xlCellTypeComments)
            Call ErrMSG2(xRange, Err.Number, "Comments")
        '---------------------
            Set xRange = .SpecialCells(xlCellTypeConstants, xlErrors)
            Call ErrMSG2(xRange, Err.Number, "Constants, xlErrors")
            Set xRange = .SpecialCells(xlCellTypeConstants, xlNumbers)
            Call ErrMSG2(xRange, Err.Number, "Constants, xlNumbers")
            Set xRange = .SpecialCells(xlCellTypeConstants, xlLogical)
            Call ErrMSG2(xRange, Err.Number, "Constants, xlLogical")
            Set xRange = .SpecialCells(xlCellTypeConstants, xlTextValues)
            Call ErrMSG2(xRange, Err.Number, "Constants, xlTextValues")
        '---------------------
            Set xRange = .SpecialCells(xlCellTypeFormulas, xlErrors)
            Call ErrMSG2(xRange, Err.Number, "FORMULAS, xlErrors")
            Set xRange = .SpecialCells(xlCellTypeFormulas, xlNumbers)
            Call ErrMSG2(xRange, Err.Number, "FORMULAS, xlNumbers")
            Set xRange = .SpecialCells(xlCellTypeFormulas, xlLogical)
            Call ErrMSG2(xRange, Err.Number, "FORMULAS, xlLogical")
            Set xRange = .SpecialCells(xlCellTypeFormulas, xlTextValues)
            Call ErrMSG2(xRange, Err.Number, "FORMULAS, xlTextValues")
        '---------------------
            Set xRange = .SpecialCells(xlCellTypeLastCell)
            Call ErrMSG2(xRange, Err.Number, "LastCell")
            Set xRange = .SpecialCells(xlCellTypeSameFormatConditions)
            Call ErrMSG2(xRange, Err.Number, "SameFormatConditions")
            Set xRange = .SpecialCells(xlCellTypeSameValidation)
            Call ErrMSG2(xRange, Err.Number, "SameValidation")
            Set xRange = .SpecialCells(xlCellTypeVisible)
            Call ErrMSG2(xRange, Err.Number, "Visible")
        End With
    End If
    Exit Function
NotFound:
    On Error Resume Next
End Function

'------------------------------------------------------------
Sub ErrMSG2(xRange, xErrNo, xOder)

    If xErrNo = 0 Then
        MsgBox xOder & "…OK Special Cell's Count=" & xRange.Cells.Count
    Else
        MsgBox xOder & "…NG Err=" & xErrNo
        Err.Clear
    End If
End Sub


 一応最初のトピにコメント(回答にはなっていないけど)したので、どちらかに絞って継続したらいかが?

 ちなみに

 > (先ほど投稿しましたが、(未)マークが付かなかったので再投稿しました。

 これは、新規トピに対して、誰かが(質問者含んで)書き込みすれば、未 じゃなくなるので。

 (ぶらっと)

 行頭から「-」四つがある場合、区切り線が表示されるようになっていて区切り線が無い場合に「未」が表示されるようだ。

 だが「未」の判断時には「行頭から」というチェックが行われていないようで文の途中に「----」がある場合には
 まだ回答が付いていなくても「未」が付かないようだ。

 もっとも「未」がつかないから同じ質問を繰り返すなんて自己満足以外に何の意味もないが。
 (ねむねむ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.