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

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

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

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

Access

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

Q&A

解決済

3回答

17522閲覧

ActiveXコントロールのエラー

f-hanako

総合スコア159

VBA

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

Access

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

0グッド

1クリップ

投稿2015/09/18 04:26

編集2015/09/24 00:00

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

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2015/09/18 04:28

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

2015/09/24 00:02

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

回答3

0

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

ActiveXの場合、単にファイルをコピーするだけでは使用できません。
インストーラがない場合、コマンドプロンプトから

> regsvr32 MSCOMCTL.OCX

を実行してやる必要があります(Windows7の場合、コマンドプロンプトを管理者権限で起動する必要もあります)
また、MSCOMCTL.OCXを置いたフォルダ以外でregsvr32を実行している場合、MSCOMCTL.OCXはパス指定してやる必要があります。

投稿2015/09/19 12:17

編集2015/09/19 12:18
KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

f-hanako

2015/09/24 00:11

回答ありがとうございます。 実は修正前から同じようにリストボックスを置いているのですが、 今回のエラーは、私がツールを修正した後から起こっているようです。 エラー発生環境の方からは、「バックアップで取っておいた修正前のバージョンを実行したが、上記のエラーは起こらない」と伺っております。
f-hanako

2015/09/24 00:35

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

0

現状の報告です。

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

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

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

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

投稿2015/09/24 02:40

編集2015/09/24 04:40
f-hanako

総合スコア159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

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

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

投稿2015/09/24 00:31

編集2015/09/24 00:34
KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

f-hanako

2015/10/19 01:54

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問