非 表示 モジュール 内 で コンパイル エラー が 発生 しま した。 MacなOfficeを64bitにしたらエラーが出たので困った話【Agent Grow Advent Calendar 2016:4日目】

再度質問ですエクセルを起動時に非表示モジュール AutoExecNew内でコンパイルエ...

非 表示 モジュール 内 で コンパイル エラー が 発生 しま した

旧バージョンのAccessを64ビット版のWindows 7+Access 2010で開いたところAPIでエラーが発生しました。 理由は64ビット版であること。 その原因と対策方法を下記に明記しておきます。 最近はPHPの開発以外に のAccessを使ったソフトの開発も時々やっています。 Accessの開発時はVirtual PCで素のOSにAccessもしくはOfficeを入れたシンプルな環境で開発を行います。 それら開発は旧バージョンのAccess 2000だったりAccess 2007だったりと様々です。 先日、Access 2002で作ったファイルをホストOSであるWindows 7に入れたAccess 2010で開いてみました。 うまく動くか気にはなっていたのですが、なかなかテストする機会がありませんでした。 MDBファイルをコピーしてダブルクリックで起動。 すると、半分予想していた通り下記のようなエラーが発生しました。 Access起動時に発生したエラー ————————— Microsoft Visual Basic for Applications ————————— 次の非表示モジュール内でコンパイル エラーが発生しました: module1 このエラーが発生するのは、一般的に、コードがこのアプリケーションのバージョン、プラットフォーム、またはアーキテクチャと互換性がない場合です。 このエラーを修正する方法については、[ヘルプ] をクリックしてください。 ————————— OK ヘルプ ————————— ここで書かれている「module1」はモジュール名です。 エラーが発生したソースは下記の部分です。 Declare Function GetFileTitle Lib "comdlg32. dll" Alias "GetFileTitleA" ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer As Integer この部分のソースはほかの環境では問題なく動いていましたが、Windows7のAccess2010だと動きません。 さっそく 先生に聞いてみたところすぐに答えはわかりました。 原因はWindows7が64ビット環境だったせいです。 Win32は見ての通り32ビット用のものです。 そして、今回動かしたのは64ビットです。 ここで引っかかりました。 細かいことはリンク先を読んでいただくこととして64ビット版でDeclareステートメントをそのまま使うとNGとのこと。 そこで、下記のように「PtrSafe」を加えるととOKとなります。 Declare PtrSafe Function GetFileTitle Lib "comdlg32. dll" Alias "GetFileTitleA" ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer As Integer ただ、ファイルを移動するたびにソースコードを変更するのはちょっと面倒です。 そこで「 If~ Else~ End If」の 条件付きコンパイルを使います。 書き方は下記のとおりです。 If VBA7 And Win64 Then '64ビット版 Declare PtrSafe Function GetFileTitle Lib "comdlg32. dll" Alias "GetFileTitleA" ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer As Integer Else '32ビット版 Declare Function GetFileTitle Lib "comdlg32. dll" Alias "GetFileTitleA" ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer As Integer End If このソースを32ビット版で書くと「PtrSafe」で 「そんなの知しらねぇよ~」 と怒られますが、コンパイルは通ります。 あまりスマートな書き方ではありませんが、知っておくと何かと便利です。

次の

コンパイルエラーが発生しました。

非 表示 モジュール 内 で コンパイル エラー が 発生 しま した

こんな感じの内容ですよ〜• 今更なんですけどね〜 の4日目の記事です。 今日は「イマサラ」なネタを自分の備忘録代わりに書いておくテストです。 Mac版のOffice、使ってます? 世の中には様々なOfficeスイート 1 ワープロソフトとかプレゼンテーションソフトとか表計算ソフトとか、ああいう類のアレが存在しますよね。 私はMacユーザなので、プライベートとかならiWork 2 Pages、Numbers、Keynoteのアレを使います。 が、お仕事ではやはりMicrosoft社のOffice 3 Word、Excel、PowerPointのアレのファイルを扱うことが多いですよね。 ってことで、を購入して、いつでも使えるように環境を整えています。 4 もっとも、Win版とMac版だといろいろ違いはあるような気はするのですが、ひとまず最低限のアレは担保できているというアレで 64bit版にしたら困った 結構古い話になるのですが、。 私もリリースされた直後くらいにアップデートしたのですが、アプリケーションを起動したときと終了したときに下記のようなエラーが出るようになってしまったんですよね。 通常このエラーは、コードがバージョン、プラットフォーム、アプリケーションのアーキテクチャと互換性がない場合に発生します。 通常このエラーは、コードがバージョン、プラットフォーム、アプリケーションのアーキテクチャと互換性がない場合に発生します。 まあ、正直なところ、ちょっと鬱陶しくはあるものの実運用上は特に問題もなかったので、しばらく放置してたんですよね。 でも、いいかげんウザったいし何とかしようかなぁ……と、重い腰をあげて調べ始めたわけですよ。 まあ、だいたい予想はしてたんだけども そもそも、32bitから64bitに変えたときに、問題が発生するってのはよくある話ですよね。 なので、きっと今回も64bitにしたときにアドインかなにかが非対応なんだろうなぁ……って想像はできたんです。 でも、何が非互換なのかがサッパリ分からず……。 そんなときはオフィシャルのソースをチェックするのが定石ですよね。 ……ってことで、軽くググってみたところ、すぐに見つかりました _ノ乙 、ン、 _ via 主な非互換アドインとして、• Thomas Reuters の EndNote のソフトウェア アップデート• Mendeley — ダウンロードとリリース ノート• Word または PowerPoint 用 Adobe Acrobat PDFMaker• TechSmith Camtasia• Cisco WebEx — ヘルプと生産性向上ツール• 詳細については、こちらのページを参照してください。 ってのが挙げられていますね。 しかし、PDFMakerの方はので、疑うべきはATOKの方でしょう。 というわけで、検索ワードに「ATOK」を追加してググってみたら見つかったのがこちら_ノ乙 、ン、 _ via 「製品をアップデートしてください」みたいなアレがあるかなと思ったのですが、アンインストールするしか今のところ方法がないっぽいですね。 Office連携ツールは、64bit版のMicrosoft Office上ではお使いいただけません。 アンインストールする手順は前述のサポート情報のページに書いてありますね。 Office 2016連携ツールをアンインストールされる場合は、以下の手順を実行してください。 1 ダウンロードした、Office 2016連携ツールインストーラを起動し、[続ける]をクリックします。 2 「操作の選択」画面が表示されたら、「削除」を選択し、[続ける]をクリックします。 3 後は、メッセージにしたがってアンインストールを行ってください。 その時は、一度インストールして、その後この手順でアンインストールするのが吉です。 さて、どうなったかな? ってことで、アンインストールが終了したので、エラーがでなくなったかを確かめてみませぅ。 ってことで、無事解決。

次の

旧Accessを64bit Win7+Access 2010で開いた時のAPIエラーの対処方法

非 表示 モジュール 内 で コンパイル エラー が 発生 しま した

いまだにあるのかという感じのWordの起動時エラーが先日勃発した。 最初に出たのがFacebookでリンク表示されたWord文書を開こうとしたときだったので、ブラウザ連携が悪いのかFacebookリンクが悪いのか判断がつかなかったが、気がつくとWordを単体で立ち上げても同じ状態だ。 「非表示モジュールLINK内でコンパイルエラー発生」というこのエラー。 エラー表示はされるものの「OK」でダイアログボックスが閉じられる。 そして、そのままWordを使い続けることもできるので、大きな問題ではないとも思える。 しかし、ちょっと気持ちが悪い。 終了時も同じエラーメッセージが出るので、正直うざい。 筆者の環境はMacにOffice 365 Soloというもの。 必要なアップグレードもしているはずだし、Wordの動作が重いなと思うことはあったが、その原因は、おそらく開いている文書が重かったことに起因したものだ。 つまり、エラー表示が頻繁にでるようになった原因について、身に覚えがない。 ということで調べてみた。 どうやら、この起動時のコンパイルエラーは、Microsoft Officeのスタートアップフォルダーに含まれるプログラムの起動準備に失敗しているということのようだ。 最近では、こうしたアプリケーションのエラーに遭遇するのも珍しくなってきたこともあり、解決までの道のりをまとめておこう。 MSのサポートページにも記載があるように、Microsoft Office スタートアップフォルダーにAdobeのAcrobat PDFMakerアドイン、テンプレートファイル(いずれか、あるいは両方)が含まれている場合に、同じマシンにインストールされたAdobe Acrobatとのバージョンが合わないときに発生していた。 解決法としては、 ・最新版のPDFMakerアドインをダウンロードする ・スタートアップフォルダーのPDFMaker. しかし筆者のマシン内を検索したところ、PDFMaker. Microsoft Officeのスタートアップフォルダーを探したところ、「Startup」の「Word」のフォルダにあったのは、このファイル「link creation. dotm」だった。 じゃあ、 「link creation. dotm」って何? このファイルを削除(移動?)すればいいのか? それで問題はないのか? と、いうことで、さらに調べてみると、やはりAdobeらしいのだ(MicrosoftのCommunityページに、まさに同じ質問があった!) そこで、Adobeのページを検索するとヘルプページにスバリの記載があった。 どうやら、Office 2016を64ビット版にアップグレードし、Acrobat DCをインストールしている場合に出る現象のようなのだ。 件のPDFMakerアドイン(linkCreation. dotmはアドイン固有のファイルとのこと)は、Mac OSではOffice 2016 32ビット版でのみサポートされているモジュールで、Office 2016 64ビット版にアップグレードした場合に、このエラーメッセージが出るという。 dotm」を削除したことで解消した。 エラーを出しているアプリケーションそのものが原因を作っているのではなく、他に原因があるというケースも多々あった。 ただ、最近ではあまり経験することがないケースだ。 理由としては、それだけ技術がこなれてきたり、単体で多機能なアプリケーションが増えてきたり、あるいはアプリケーション自体がクラウド型になってきたりといった、さまざまな要因が考えられる。 ただ、このように、いまでも突然、起こり得ることでもある。 エラーが起こって困ったときの解決方法の探し方として、エラー表示を出しているアプリケーションだけが決して対象ではないということを、ちょっと頭の隅にでも覚えておくとよいだろう。 とはいえ、Microsoft Officeのスタートアップフォルダーがある意味不要なトラブルを起こしている場合も多いのではないか。 Office関連アプリの起動時にトラブルがある場合は、ここを確認してみるのが早道かもしれない。 大内孝子.

次の