VBでEXCELを操作しているのですが、Selection.ClearContentsを行うと、1回目は正しく実行されるのですが、一度EXCELを閉じて、同じ操作を行うと「オブジェクト変数またはwithブロック変数が定義されていません」というエラーがでるのですが、どのようにすればエラーが出ることなく実行されますか?
オブジェクト変数にオブジェクトを参照させてください…?
もしくは、何も参照していないオブジェクト変数に対して"."演算をつかわないでください…?
たとえば、次のコードでもこの例外を発声させることが出来ます。
dim x as collection
msgbox x.count
色々原因ありすぎて何もいえませんが、とりあえずデバッグしてください。
あと、環境も明示してください。
Selection や Active系プロパティは、可能な限り使わないようにしましょう。
今回の場合は、RangeオブジェクトのClearContentsメソッドで対処できませんか?
どうしても Selection を使いたいのであれば、
Selection.ClearContents
ではなく、
Dim X1 As Excel.Application
:
:
X1.Selection.ClearContents
のように、「どのオブジェクトのSelectionプロパティなのか」を
はっきりさせる必要があります。
環境VB6.0 Windows2000
Dim xl As Object
Dim wb As Object
Dim ws As Object
として
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open("\\Cads036\sotuken\資格一覧全員分.xls")
Set ws = wb.Worksheets("印刷シート")
このようにオブジェクトは参照させているのですが。
レイトバインド主体のコーディングですね。
もしもExcelを参照設定していたら、それを外してみてください。
参照設定を外すとエラーが出るようであれば、
コーディングミスがある可能性があります。
(その代わり、参照設定が無い場合、Const 等は自分で定義しなければなりませんが)
無事に実行できました。
ガッさん、魔界の仮面弁士さん、ありがとうございました。
| ツイート |
|