【最大10000ポイント】当たる!!質問投稿キャンペーン!

VB6.0のexeファイルでのアプリ稼動ができません。プロジェクトファイルを開いて実行すれば稼動するのですが、生成したexeファイルを実行した場合は稼動しません。
いったいどういう原因なのでしょうか?リリースモードでコンパイル云々という話でしょうか?
ただ他にもVBのアプリが存在するのですが、そちらはexeファイルの実行だけで問題なく稼動します。

OS Windows XP(SP1)
開発環境 VB6.0 (SP5)
.NET Framework 1.0?

原因が分かる方、推測できる方いらっしゃったら、教えていただけないでしょうか?宜しくお願いします。

A 回答 (6件)

2つほど考えられます。



最初が実行環境の問題です。
例えばVCで作成したDLLをしっかり管理していないと非常にややこしいことになります。

次にソースのコーディングミス。
デバッガとコンパイル後で結果が違うときはこの線も疑って下さい。
私の経験ではGetDIBitmapsか何かで同様なことが発生した記憶があります。
デバッガだと正常にいくケースが稀にあります。

一番いいのはtxtに文字をはき出してどこで止まっているか調査することです。
    • good
    • 0

もしかして、実は「稼動はしているけど、


想定される動作を行う条件が整っていないために
動作していないように見える」とかは、ないですかね?
その辺も大丈夫であれば…
多少面倒には なりますが、最悪、コンソールが使用できるなら
プログラムの最初で何か文字列を吐いてみるとか、
コンソールが使えないなら何かテキストファイル等を
吐いてみるとか したら、何とか確認は可能かと思います。
(他の要因で想定どおりの動作が行われないのなら、そのまま
デバッグ用として使えますしね)
    • good
    • 0

> exeファイルが実行中であるのは、タスクマネージャで見えています。


> ですが、アプリ自体が稼動していません。

「稼動していない」事は、どうやって、確認したんでしょうか?
「バッチ形式でファイル操作を行うはずが、ファイルが変更されない」とか?

#単に「画面が表示されない」は「稼動していない」証拠にはなりませんから・・・

この回答への補足

画面はありません。プロジェクトファイルを開いて実行すれば稼動する(ある動作をすることが分かっています。)のですが、exeファイルをたたくだけでは同様の動作が確認できないので、「稼動していない」ということが分かります。

補足日時:2007/06/18 16:15
    • good
    • 0

> >#標準EXE?ActiveXEXE?画面あり?


> 標準EXEです。

フォームはあるんですよね?
スタートアップは、フォーム?Sub Main?

特定のEXEだけですか?
新規のEXEを作成した場合も同じですか?

開発環境上でしか動作しないコード(DebugとかAssertとか)で、
重要なコード(表示とか)を実行していたりしませんか?

とりあえず、
ファイル(Frm/Bas/Cls等)の構成と、「画面表示までに実行している『はず』」のコードを提示していただけませんか?
    • good
    • 0

若しかしたら、稼動していないのではなく


見えないだけなのでは?

起動後、そのアプリをリネーム又は削除できますか。
出来なければ、見えないだけです。

Me.Show
と入れたらどうでしょうか。

この回答への補足

exeファイルが実行中であるのは、タスクマネージャで見えています。ですが、アプリ自体が稼動していません。
プロジェクトファイルを開いて実行すれば、アプリは稼動してくれるのですが。。。

補足日時:2007/06/18 13:25
    • good
    • 0

具体的にどういうEXEなんでしょうか?


#標準EXE?ActiveXEXE?画面あり?

また、どういう状況なんでしょうか?
#エラーが発生?何も起こらない?瞬間的に起動してすぐに終了?

後、VB6には、
> リリースモードでコンパイル云々という話でしょうか?
リリースモードはありませんし、
> .NET Framework 1.0?
も関係ありません。

この回答への補足

>具体的にどういうEXEなんでしょうか?
自分で開発したアプリをコンパイルし、exeファイルを生成しました。

>#標準EXE?ActiveXEXE?画面あり?
標準EXEです。

>また、どういう状況なんでしょうか?
>#エラーが発生?何も起こらない?瞬間的に起動してすぐに終了?
エラーは発生しません。イベントビューワにも何も出ていません。
タスクマネージャでは何事もないようにexeファイルが実行中と表示されています(一時的ではなくずっとです)。ただ、アプリ自体は稼動していません。

何かわかりますでしょうか?

補足日時:2007/06/18 12:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXEファイルを実行できません。

VB6でプログラムをつくりました(OS:WINDOWS98)が、EXEファイルを他のPC(OS:WINDOWS2000/WINDOWS95等)で実行させるのですが、うまくうごきません。API関数を使用しているのでこのためかと思いますが、どのように対処したらよいかわかりません。
"SLEEP"
"RegCloseKey/RegOpenKeyEx"
"RegQueryValueExstr"
"Keybd_event"
を使用しています。
他のPCにはソフトの干渉からVBをインストールすることはできません。
DLLをシステムに入れることなら問題ないのですが、どなたか教えていただけませんか?

Aベストアンサー

他のPCには、VB6 の環境が全く入っていないということですよね。
そうであれば、EXE ファイルだけを単体で持っていっても、動きません。ランタイムライブラリが必要です。

ランタイムライブラリは、パッケージになったものがネットからでもDLできると思いますが、それよりも、No.1 の方がおっしゃるように、セットアップパッケージを作成した方がベターです。

セットアップパッケージは、VB6 の「ディストリビューション ウィザード」で簡単に作成できます。
このプログラムを立ち上げて、質問に答えていくだけで、配布用のパッケージを作ることができます。
完成したパッケージには、そのプログラムを動かすのに必要なランタイムライブラリがすべて含まれていますので、全く何もない環境に持っていっても、正しくインストールすることができます。

これを実際にやってみて、わからないことがあれば、補足して下さい。

Qvb.netで作成したexeファイルが実行できない

vb.netのexeファイルでのアプリの一部の動作ができません。

プロジェクトファイルを開いて実行すれば稼動するのですが、生成したexeファイルを実行した場合に一部の動作が稼働できません。その動作以外の動作は稼働します。

その稼働しない動作はデバイスの状態変更(有効から無効)にする動作です。

原因が分かる方、推測できる方がいらっしゃったら、教えていただけないでしょうか?
宜しくお願いします。

exeファイルは監視exeでデバイスの接続時にフォームが表示するようにタスクスケジューラーで常時監視をしています。

また、通常時は画面上には見えないように「ShowInTaskbar」をFalseにしており、フォームは通常時最小化されている状態になります。

Aベストアンサー

>その稼働しない動作はデバイスの状態変更(有効から無効)にする動作です。

デバイスに停止命令を送っているAPI関数から、どういう戻り値が返って来るか表示してみましょう。

「デバイスに対するアクセス権なし」とか「デバイスに対するファンクション番号エラー」とか、色々なエラーが返されている可能性があります。

それ以前に、API関数が正常終了したかエラー終了したかくらいは調べましょう。

あと、もしかしたら「無効化しても、勝手にすぐに有効化しちゃってる」と言う可能性も捨て切れませんし、そもそも「無効化できないデバイス」なのかも。

Q動作を停止しましたと表示され、停止します。

動作を停止しましたと表示され、アプリケーション停止します。

問題の詳細



発生元
怪盗攻略ブラウザ2

概要
動作が停止しました

日付
‎2013/‎08/‎07 0:19

状態
レポートが送信されました

説明
障害が発生しているアプリケーションのパス: C:\Users\******\AppData\Local\Apps\2.0\8B9RETX1.HAB\QDOQORNC.VKJ\kait..tion_8149fee0edf1ff73_0002.0001_5674af9cba542bd5\KaitoBrowser2_1.exe

問題の署名
問題イベント名: APPCRASH
アプリケーション名: KaitoBrowser2_1.exe
アプリケーションのバージョン: 1.0.0.0
アプリケーションのタイムスタンプ: 51ef9c9c
障害モジュールの名前: KERNELBASE.dll
障害モジュールのバージョン: 6.1.7601.18015
障害モジュールのタイムスタンプ: 50b83c8a
例外コード: 4000001f
例外オフセット: 00013219
OS バージョン: 6.1.7601.2.1.0.768.3
ロケール ID: 1041
追加情報 1: 12e5
追加情報 2: 12e5e8e1c146c520e06bac21034ebc4f
追加情報 3: 3670
追加情報 4: 367002d938052abab76c4a26ecb98de3

この問題に関するその他の情報
バケット ID: 3728007683

動作を停止しましたと表示され、アプリケーション停止します。

問題の詳細



発生元
怪盗攻略ブラウザ2

概要
動作が停止しました

日付
‎2013/‎08/‎07 0:19

状態
レポートが送信されました

説明
障害が発生しているアプリケーションのパス: C:\Users\******\AppData\Local\Apps\2.0\8B9RETX1.HAB\QDOQORNC.VKJ\kait..tion_8149fee0edf1ff73_0002.0001_5674af9cba542bd5\KaitoBrowser2_1.exe

問題の署名
問題イベント名: APPCRASH
アプリケーション名: KaitoBrowser2_1.exe
ア...続きを読む

Aベストアンサー

追加
>KERNELBASE.dll

VB***、.NET Framework*関連の場合もあります。
VB PowerPacksSetup.exeを実行インストールして解決した事例
参考URL

参考URL:http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=30385&no=0&KLOG=3

QVB6.0で作成したexeファイルが他のPCではエラーが発生して動きません

はじめまして。
色々検索してみたのですが、なかなか見つからなかったのでお力を貸していただければと思います。

仕事でVB6.0でつくられたプログラムがあります。
最初は別の方(仮にAさんとします)が作ってくださり、いつもそのexeファイルをもらって仕事をしておりました。
この度、私がそのプログラムを修正し、exeファイルを作成したところ、自分のPCでは問題なく動くのですが、他のPCで使用しようとするとエラーが発生して動きません。

プログラムはVB6.0で、指定したエクセルファイルを開いて参照し、データと照合させるものです。

AさんのPCのOSはwinXPです。
Aさんが作ってくれたexeファイルはコピーして、Win95/Win98/WinXPで問題なく動作することが出来ました。
しかし私が修正し、作成したexeファイルはOSは関係なく自分のPC以外ではエラーが発生してしまいます。ちなみに自分のPCもWinXPです。
エラーは「不正な処理をしている為、このプログラムを終了します」という様なものです。
エクセルを参照しようとすると、発生するエラーなので、そのときだとは思うのですが、デバックしようにも、自分のPCでは問題なく動いてしまうので、どうにも出来ません。

よろしくお願い申し上げます。

はじめまして。
色々検索してみたのですが、なかなか見つからなかったのでお力を貸していただければと思います。

仕事でVB6.0でつくられたプログラムがあります。
最初は別の方(仮にAさんとします)が作ってくださり、いつもそのexeファイルをもらって仕事をしておりました。
この度、私がそのプログラムを修正し、exeファイルを作成したところ、自分のPCでは問題なく動くのですが、他のPCで使用しようとするとエラーが発生して動きません。

プログラムはVB6.0で、指定したエクセルファイルを開い...続きを読む

Aベストアンサー

原因は 事前(アーリー)バインディングつまり参照設定をしているためです
yuzumiya氏のパソコンにはExcel2003、ターゲットパソコンにはExcel2000 ということですね

VBのアプリはExcel2003を探しているが見つからないので落ちてしまうのです

As Objectになおして EXcel2003への参照設定も外して EXEを作成してください

QVB.NETで他のEXEを実行させる

VB.NETで他のEXEを実行させる以下の2つの方法が知りたいです。

1)perlのsystemのように実行完了後に制御が戻る

2)perlのexecのように実行完了後に制御が戻らない

あと、この2つの使い分けのコツ(用途)が知りたいです。

Aベストアンサー

http://jeanne.wankuma.com/tips/vb.net/process/
こちらの8番と9番をどうぞ。

使い分けですが、
実行完了を待って次の処理をする必要がある場合は、制御が戻るまで待つ、そうでないものはキックして終わり、です。

Q実行ファイル(exe)が起動しない

とあるフリーゲームをインストールしたのですが、インストール後に生成されるexeファイルをダブルクリックしても、無反応です。
タスクマネージャで確認したところ、ダブルクリックから、ほんの一瞬だけプロセスは走っているようでしたので、完全に無反応ではないのですが・・・。
それ以外はなんのアクションもなく、エラー・警告など一切表示されません。
今回のフリーゲームに限らず、以前も同様に起動できなかった実行ファイルがありました。

管理者権限・互換性モード・セキュリティ除外設定・データ実行防止設定・再インストール。
色々試してみましたが、どうにも起動しません。

ご教授願えればと思います。


Windows Vista Pro 32bit
メモリ3GB(+1GB)
Geforece520G
※その他メーカーPC"CE50Y9"と同等。

数世代前のメーカーPCを少し弄っただけのものですが、今回起動したいものに対して、スペックは十分足りています。

Aベストアンサー

 目的のソフト名、セキュリティソフトの有無等わかりませんので、私の経験から改善した方法をお伝えさせていただきます。

1.インストールフォルダがProgramFileになっている場合、例えばCドライブ上に任意のファイルを作成しそこにインストールする。公式にこの方法をとるよう記載されているソフトもありましたのでお試しください。

2.セキュリティソフトを一時停止してソフトのインストールを行う。通知領域にあるウイルスソフトのアイコンからは完全停止できない場合があるのでよくマニュアルをご確認ください。

3.ウイルス感染の危険・OSの不具合が発生する場合もあり、あまりお勧めできませんがセキュリティソフトが原因の場合の強硬手段です。

 LANケーブルを抜く等インターネットに接続できない状態で、『システム構成』画面の『サービス』・『スタートアップ』タブ内のセキュリティソフトの項目のチェックを全てはずし、セキュリティソフトが完全に起動しない状態で再起動、目的のソフトをインストールし起動を確認してから再度『システム構成』画面からセキュリティソフトが起動できるよう設定しなおす。
 ウイルス感染の危険・OSの不具合が発生する場合もあり、あまりお勧めできませんがどうしてもという場合自己責任でお試しください。

 目的のソフト名、セキュリティソフトの有無等わかりませんので、私の経験から改善した方法をお伝えさせていただきます。

1.インストールフォルダがProgramFileになっている場合、例えばCドライブ上に任意のファイルを作成しそこにインストールする。公式にこの方法をとるよう記載されているソフトもありましたのでお試しください。

2.セキュリティソフトを一時停止してソフトのインストールを行う。通知領域にあるウイルスソフトのアイコンからは完全停止できない場合があるのでよくマニュアルをご確認くだ...続きを読む

QRelease版のexeが動きません

VisualStdio2005を使用してC++のアプリケーションを作成しました。
そしてReleaseビルドをしてReleaseのフォルダごと友達のパソコンへ
もって行って実行しようとしたら

「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールす事により問題が解決する場合があります。」

というエラーがでてしまってプログラムが開始できませんでした。
この原因で考えられることはなんでしょうか?
ちなみにWin32プロジェクト(空のプロジェクト)のテンプレートで
作成したWindowアプリケーションです。

Aベストアンサー

情報が少ないんで推測交じりですが、
エラーメッセージからするとこの辺と同じ原因?

他のPCでも使えるリリースビルドの仕方 - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36864&forum=7&7

Re: コンパイルについて ランタイムライブラリ マルチスレッドDLL設定 - MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1255615&SiteID=7

いずれにしろ、単純コピーで済ませるのはあまりよろしくないようですね。

QVB.NET で作られたソフトを動かすのに必要なモノは?

つい3日前から購入したばかりのVB.NETの勉強を始めました。
まだ習得しきってない段階で、先走りかもしれませんが、
モヤモヤと気になることがあるので質問いたします。
(私はVB5の素人プログラマでした。VB6は知りません)

VB関連のランタイムを集めているたとえばこんなサイトが
あります。
http://www.vector.co.jp/vpack/filearea/win/util/runtime/index.html

ん~!?「NET用」のDLLとかランタイムが無いではないか?
VB5の配布時に使っていた「セットアップ・ウィザード」に該当する
機能も、NETに見いだせません。(見落としているんでしょうか?)

つーことは....VB.NETで作ったエグゼファイルは、
単独で動作するもんなんでしょうか?

「MSネット環境では動作する」という場合、それってどういう
環境なんでしょうか? プログラムを公開するページで、
コンピュータに私以上に詳しくないユーザーに、何を求めれば
いいのでしょうか?
(OS環境や必要なランタイムをどう説明すればいいのでしょうか?)

つい3日前から購入したばかりのVB.NETの勉強を始めました。
まだ習得しきってない段階で、先走りかもしれませんが、
モヤモヤと気になることがあるので質問いたします。
(私はVB5の素人プログラマでした。VB6は知りません)

VB関連のランタイムを集めているたとえばこんなサイトが
あります。
http://www.vector.co.jp/vpack/filearea/win/util/runtime/index.html

ん~!?「NET用」のDLLとかランタイムが無いではないか?
VB5の配布時に使っていた「セットアップ・ウィザ...続きを読む

Aベストアンサー

.NETのプログラムの実行には、.NET Frameworkと呼ばれる実行環境が必要です。
http://www.atmarkit.co.jp/fdotnet/basics/msdotnet/msdotnet_01.html

これは、WindowsUpdateでもインストール可能だたと思いますが、
こちらからもダウンロードできます。
http://www.microsoft.com/japan/msdn/netframework/downloads/

.NET2003で開発したものなら、「.NET Framework 1.1 再頒布パッケージ」および
「Microsoft .NET Framework Version 1.1 日本語 Language Pack」 を
インストールすることにより、.NET Framework を使用して開発された
アプリケーションを実行することができます。
(サイズはかなり大きいです)

サポートされているオペレーティング システムは、
Windows 2000, Windows 98, Windows ME, Windows Server 2003, Windows XP
およびSP6.0aのWindowsNT4.0です。


尚、こちらのサイトが.NET開発のお役に立つと思いますので参考にしてください。
http://www.atmarkit.co.jp/fdotnet/index/all/category.html

.NETのプログラムの実行には、.NET Frameworkと呼ばれる実行環境が必要です。
http://www.atmarkit.co.jp/fdotnet/basics/msdotnet/msdotnet_01.html

これは、WindowsUpdateでもインストール可能だたと思いますが、
こちらからもダウンロードできます。
http://www.microsoft.com/japan/msdn/netframework/downloads/

.NET2003で開発したものなら、「.NET Framework 1.1 再頒布パッケージ」および
「Microsoft .NET Framework Version 1.1 日本語 Language Pack」 を
インストールすることにより、.NET...続きを読む

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

QMSCOMCTL.OCXのアップデートの方法

Excel VBAを使っていて
ListviewなどのMSCOMCTL.OCXに依存した
コントロールを使っている場合
MSCOMCTL.OCXに上位互換性がないため、
VBAを含むxlsmファイルを作成したPCとは異なるPCで
そのプログラムを使用するためには
使うPCごとにMSCOMCTL.OCXをアップデートする必要があります。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1198163781

詳細はこのページに書かれてあります。

疑問は、いま、自分が使っているMSCOMCTL.OCXのバージョンが2012年のものなのですが
Windows10にアップグレードするなどした場合に
MSCOMCTL.OCXをアップグレードする必要がありますが
VBAは正常に動作するのでしょうか?

MSCOMCTL.OCXには下位互換性があるのでしょうか?

もし動作しないとして、
一つずつListviewを削除して新規作成するという作業を行う必要があるのでしょうか?
自動更新できる方法があれば教えてください。

Excel VBAを使っていて
ListviewなどのMSCOMCTL.OCXに依存した
コントロールを使っている場合
MSCOMCTL.OCXに上位互換性がないため、
VBAを含むxlsmファイルを作成したPCとは異なるPCで
そのプログラムを使用するためには
使うPCごとにMSCOMCTL.OCXをアップデートする必要があります。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1198163781

詳細はこのページに書かれてあります。

疑問は、いま、自分が使っているMSCOMCTL.OCXのバージョンが2012年のものなのですが
Windows10に...続きを読む

Aベストアンサー

>Win10 PCで作成したVBAをWin7 PCにコピーして使用するためには、
>「~7.0(SP6)(仮称)」にチェックを入れる必要があるはずです。
その場合にはWin7PCではMicrosoft ListView Control 6.0(SP4)にチェックを入れなおせば
まず問題ないはずです。
ちなみに当方のWin7 Office2010 のMicrosoft ListView Controlの実体ファイルの
製品バージョンは6.01.9839
Win10 Office2016(プレビュー版)のmscomctl.ocxのバージョンも同一でした。
単純なテストですが、2016 → 2010 では問題なかったです
VBAはよく言えば枯れた状態ですので大々的なアップデートは無いでしょう。
あったとしたらMicrosoft ActiveX Data Object x.x Libraryと同様
Microsoft ListView Control 6.0・・・
Microsoft ListView Control 7.0・・・
のように複数バージョンが並行して登録されるとおもいます。

>オフィスを常にアップデートして最新の状態にしておく必要があるということでしょうか?
大多数の人は更新プログラムを自動的にインストールする設定にしたままだと思います。
最新にというかリビジョンを合わせた方がつまらないトラブルにならないと思います。
ただ、近年のアップデートは地雷が多すぎて何とも言えなくなりました。。。

>Win10 PCで作成したVBAをWin7 PCにコピーして使用するためには、
>「~7.0(SP6)(仮称)」にチェックを入れる必要があるはずです。
その場合にはWin7PCではMicrosoft ListView Control 6.0(SP4)にチェックを入れなおせば
まず問題ないはずです。
ちなみに当方のWin7 Office2010 のMicrosoft ListView Controlの実体ファイルの
製品バージョンは6.01.9839
Win10 Office2016(プレビュー版)のmscomctl.ocxのバージョンも同一でした。
単純なテストですが、2016 → 2010 では問題なかったです
VBAはよく言えば枯れた状...続きを読む


人気Q&Aランキング