みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2019-01-08 09:19:42

QNo.9575577

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Microsoft Windows Common Controls 6.0 (SP6)
の事態は
MSCOMCTL.OCX で、すくなとも当方
Windows10の64ビットOSの場合は
C:\Windows\SysWOW64 にあります。

これには64ビット版のものはなく、
Officeが64ビット版の場合は使えないようです。

参照設定ができる・できないの問題は
利用OSによって事態ファイルの在処が異なる可能性
更に、
使っているOfficeの32ビット、64ビットの違い
により後者が使えないための影響を疑います。

添付画像で実態ファイルの在処が確認できるようですので、
これを確認するところから始めると見えてくるかもしれません。

投稿日時 - 2019-01-09 21:48:20

補足

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

投稿日時 - 2019-01-14 08:59:30

ANo.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のバージョンを明示すれば
もう少し突っ込んだコメントができるかもしれません。

投稿日時 - 2019-01-08 21:04:44

補足

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

投稿日時 - 2019-01-09 09:29:47

あなたにオススメの質問