【Access備忘録】Excelに書き出すと2回目にエラーが

記事
IT・テクノロジー
ボタンを押すとExcelにデータを書き出すプログラムがあります。Excelは.Visible = Falseで隠していますが実際は立ち上がっています。シートは複数。

1回目の書き出しはエラーなしなのにもう1回ボタンを押すと

「Range’メソッドは失敗しました:’_Worksheet’オブジェクト」

というエラーが起きました。

どのシートかはしっかり明示している、しかもキカイなのに2回目だけエラーって……。この手のエラーは心の平安を乱されますね。

まずシートの罫線をクリアしているのですが、

    '罫線をクリア。
    ws.Range(Cells(1, 1), Cells(endRow, rs.Fields.Count + 1)).Borders.LineStyle = xlLineStyleNone

これがダメで、

    '罫線をクリア。
    ws.Range(ws.Cells(1, 1), ws.Cells(endRow, rs.Fields.Count + 1)).Borders.LineStyle = xlLineStyleNone

こう書かないといけませんでした。

Range(範囲)はws(そのワークシート)だけど、Cells(セル)はどのワークシート? ということなんだと思います。

しっかり明示してあげる、これで以後AccessからExcelの操作は妙なエラーも出ずバッチリでした。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す