- 締切済み
印刷マクロで・・・ No2904836の続き
No2904836の印刷マクロでWendy02さんから助けていただき自宅でのテストはできたのですが、職場でコードを書き終えて実行すると If WorksheetFunction.CountA(.Range("A1").CurrentRegion) < 2 Then の部分でエラ-438が出ます。 原因がわかりません。コードの書き違えもありません。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 確か、会社のExcelは、Ver.2000 でしたね。 「エラー438」というのは、その元になっているオブジェクトには、プロパテイやメソッドがないと意味のはずです。そのコードは、Excel 97も通ります。命令の部分が、仮に点一つでも違っていても、 「エラー438」は出てきます。 そういう時は、その部分だけを抜き出して、マクロにしてみるのがよいです。 Sub TestA() With Worksheets("Sheet1") If WorksheetFunction.CountA(.Range("A1").CurrentRegion) < 2 Then MsgBox WorksheetFunction.CountA(.Range("A1").CurrentRegion) End If End With End Sub ただし、Applicationが通らないところでは、WorksheetFunction は利きません。その部分自体は、データのない時にエラー解除ですから、それ自体はなくてもかまいませんが、別の場所で同じエラーが出る可能性が高いです。
- pauNed
- ベストアンサー率74% (129/173)
こんにちは。横から(?)失礼します。 >エラ-438 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」のエラーですか? #WorksheetFunction.CountAをサポートしてない? 職場でお使いのExcelのバージョンは何ですか? とりあえず If Application.CountA(.Range("A1").CurrentRegion) < 2 Then や If .Range("A1").CurrentRegion.Count < 2 Then や If .Range("A65536").End(xlUp).Row < 3 Then などと差替えて試してみてください。