• 締切済み

エクセル2016でマクロを上書きすると参照設定が

2016以前のエクセルで作成したマクロを2016で修正したものを2016以前のオフィスで起動するとコンパイルエラーになります、参照設定のmicrosoft common control6.0(sp6)の参照設定が参照不可になっています。試しに同じマクロが入っている古いソースを(2016で上書きしていない)を以前のオフィスバージョンで開くと同じ参照設定が外れることはありません、お客さんからのクレームで困っています、宜しくお願いいたします。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

Microsoft Windows Common Controls 6.0 (SP6) の事態は MSCOMCTL.OCX で、すくなとも当方 Windows10の64ビットOSの場合は C:\Windows\SysWOW64 にあります。 これには64ビット版のものはなく、 Officeが64ビット版の場合は使えないようです。 参照設定ができる・できないの問題は 利用OSによって事態ファイルの在処が異なる可能性 更に、 使っているOfficeの32ビット、64ビットの違い により後者が使えないための影響を疑います。 添付画像で実態ファイルの在処が確認できるようですので、 これを確認するところから始めると見えてくるかもしれません。

sn3629
質問者

補足

遅くなって申し訳ありません、お客さんのマシンでのMSCOMCTL.ocxの設定はsysWOW64に設定済みで2016でソースを上書きするまで正常に動作中でした、ですので悩んでいます。現状は他のPCに古いオフィスを入れてソース(コードをコピー)を作り直したもので動かしてもらっています。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

https://akarui-nippon.com/blog/115-2 このような記事があることから 「Microsoft Windows Common Controls 6.0 (SP6)」 は、古いOfficeに同梱されているものではなく VB6に同梱しているものだろと推測します。 つまり、古いOfficeだから動作するのではなく、 動作するPCにはその昔、VB6が登録してあり その機能の一部をVBAが参照している。 ということではないかと思います。 VBA側の参照設定をオフにして実行してみて、 異常がなければ、 参照しているだけだったと判断していいだろうと思います。 異常があるのであれば、ちょっと厄介と思います。 なお、動作するPCのOS、Officeのバージョンを明示すれば もう少し突っ込んだコメントができるかもしれません。

sn3629
質問者

補足

ご回答ありがとうございます、なるほど。同じマシンでオフィス2016で上書きしていないソース(エクセル)は参照設定は外れてないのが理解できません。経緯を再度、2016でマクロを変更して上書きー>お客さんからコンパイルエラーの報告ー>自分の別のPCでオフィス2003を再セットアップー>動作確認ー>コンパイルエラー、2016で上書きしていないソースをPCにコピーー>起動ー>OK。なのですが。OSはお客さんはwin10です、こちらの環境はwin7Pro オフィス2016と2003です。 宜しくお願いします。