Accessで管理しているデータをExcelの帳票(単票形式)で出力するシステムを引き継いだ。




さて、AccessからExcelを呼び出す際


・Create Objectを使う方法


・参照設定でExcelを定義しておく方法


がある。(他にもあるかも)


それぞれ短所長所があるのだが、私は図らずもCreate Objectを使う機会が多い。




今回引き継いだものは、上記を混在していた。メンテナンス上訳がわからなくなるといけないので、前者のパターンに統一してしまおうと、修正したときのこと。


処理が始まるとテンプレートファイルをワークファイルとしてコピーしてきて、値を貼り付け終わった後に正式ファイル名で保存しなおしていたのだが、修正後は正式ファイル名で保存する箇所でエラーが発生しだした。SaveAsメソッドのパラメータが間違えているのかと修正したりしたがNG。


実験を重ねるうち、どうもSaveAsメソッド自体が使えないような気がしてきた。そこでテンプレートファイルをコピーしてきた際にワークファイルとせず、正式ファイル名にコピーして、最後はただのSaveに書き換えてみたところ、何事もなかったように終了した。




少なくとも参照設定の時は動作していたのだから、Create Objectではいくらか機能が制限されてしまうのだろうか?もし機能制限があるのなら参照設定の方が有利なのではないか、とも思う。




同様のご経験や、ご存知の方がいらっしゃれば情報を頂ければ有難いです。