[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『(再)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.