• 締切済み

印刷マクロで・・・ No2904836の続き

No2904836の印刷マクロでWendy02さんから助けていただき自宅でのテストはできたのですが、職場でコードを書き終えて実行すると If WorksheetFunction.CountA(.Range("A1").CurrentRegion) < 2 Then の部分でエラ-438が出ます。 原因がわかりません。コードの書き違えもありません。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 確か、会社の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)
回答No.1

こんにちは。横から(?)失礼します。 >エラ-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 などと差替えて試してみてください。

関連するQ&A