質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • VBA

    1730questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Access

    409questions

    Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

ActiveXコントロールのエラー

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 6,463

f-hanako

score 143

OS:Windows7
使用DB:Access2013

現在、mdbで作成された集計ツールの改修を行っています。
私の環境ではエラーが出てこなかったのですが、他の方の環境でツールを動かしたときに、
以下のようなエラーが出てくるそうです。
イベントプロパティに指定した式MouseMoveでエラーが発生しました。フォームまたはレポート上のActiveX コントロールを読み込むときにエラーが発生しました。
*マクロ名、ユーザー定義関数名、[ イベントプロシージャ ]以外の式が指定されています。
*関数、イベント、マクロの評価でエラーが発生しました。
フォーム上にはActiveXコントロールのListViewCtrlを置いています。
 OLEクラス:ListViewCtrl
 クラス:MSComctlLib.ListViewCtrl.2
こちらのListViewCtrlにカーソルを合わせた時にエラーが発生するようです。

ソースを見直しても、MouceMoveを使用している箇所はなく、
プロパティシートを見ても、フォーカスの取得・喪失時、取得後・喪失後には
何のイベントも設定しておりません。

エラーが発生する方の環境は
OS:Windows7
使用DB:Access2007,2013
となっております。

----------
【補足】
・発生しない環境
Windows7:64bit
Access2013:32bit
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Tak1wa

    2015/09/18 13:28

    発生しない環境、発生する環境のそれぞれのOSが32bitか64bitか。 Accessが32bitか64bitか。補足してください。

    キャンセル

  • f-hanako

    2015/09/24 09:02

    発生しない環境の情報を補足しました。発生する環境の情報は現在伺っている最中です。わかり次第追記します。

    キャンセル

回答 3

+1

MSComctlLibってVB6付属のコントロールじゃなかったですか(ちょっとうろ覚え)。
単純に新規のWindows7にこのもとになるMSCOMCTL.OCXがインストールされていないからではないでしょうか。

ActiveXの場合、単にファイルをコピーするだけでは使用できません。
インストーラがない場合、コマンドプロンプトから
> regsvr32 MSCOMCTL.OCX 
を実行してやる必要があります(Windows7の場合、コマンドプロンプトを管理者権限で起動する必要もあります)
また、MSCOMCTL.OCXを置いたフォルダ以外でregsvr32を実行している場合、MSCOMCTL.OCXはパス指定してやる必要があります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/24 09:11

    回答ありがとうございます。
    実は修正前から同じようにリストボックスを置いているのですが、
    今回のエラーは、私がツールを修正した後から起こっているようです。

    エラー発生環境の方からは、「バックアップで取っておいた修正前のバージョンを実行したが、上記のエラーは起こらない」と伺っております。

    キャンセル

  • 2015/09/24 09:35

    すみません、上のコメントは忘れてください。
    調査を進めた結果、KoichiSugiyamaさんのおっしゃる通り、
    MSCOMCTL.OCXがインストールされていない可能性が高そうです。
    また結果が出次第報告いたします。

    キャンセル

checkベストアンサー

0

#すみません、コメントに対する返信をこちらに書いてしましました。

考えられるのがエラーが発生する環境にMSAccess2007と2010の両方がインストールされていることでしょうか。
f-hanakoさんの環境ではAccess2010のライブラリを参照していて、利用者の環境では2007の方のライブラリを参照している、などで、呼び出される関数などが、2007側に実装されていない場合、読み込んだだけで不正終了することが考えられます。
DependencyWakerなどを使って、実際に参照しているライブラリファイルがどちらか追ってみることはできないでしょうか。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/19 10:54

    返信が大変遅くなってしまい申し訳ありません。
    KoichiSugiyamaさんのおっしゃる通り、エラー環境と私の環境で、
    参照しているライブラリの場所が違っていることが原因でした。

    ありがとうございました!

    キャンセル

0

現状の報告です。

第三社の端末(win7:64bit、Access2007のみインストール)へリモート接続し、
そこからListViewへ対して名前の変更など何かしらの修正を行うと、
その後エラーが出なくなりました。

Access2013端末(私の端末)からListViewの修正を行うと、
他端末ではエラーになってしまうようです。

KoichiSugiyamaさんがおっしゃる通り、
参照しているライブラリがそれぞれの環境で違っているのかもしれません。

もう少し詳しい原因について調査を進めてみます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • VBA

    1730questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Access

    409questions

    Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。