■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#8038-0VB3とVB6との互換性匿名80382000-05-17(水) 18:27
     #8040-0RE#8038:VB3とVB6との互換性魔法使い見習い2000-05-17(水) 18:32
     #8061-0RE#8038:VB3とVB6との互換性U-Root-Y2000-05-18(木) 11:30
     #8093-0RE#8040:VB3とVB6との互換性匿名80932000-05-18(木) 20:32
     #8095-0RE#8061:VB3とVB6との互換性匿名80952000-05-18(木) 21:21
     #8100-0RE#8093:VB3とVB6との互換性魔法使い見習い2000-05-19(金) 00:38
     #8105-0RE#8095:VB3とVB6との互換性魔界の仮面弁士2000-05-19(金) 01:31
     #8438-0RE#8105:VB3とVB6との互換性匿名84382000-06-01(木) 10:24
#8038-0
VB3とVB6との互換性
VB3.0で作成した昔のプログラムを改修する必要が生じましたが古い開発環境がありません。
VB3.0で作成したプロジェクトをVB6.0で開こうとしたらエラーが出てしまいました。
VB6.0の開発環境でVB3.0のプロジェクトを動かしたいのですが何かいい方法がないでしょうか。
以上
#8040-0
RE#8038:VB3とVB6との互換性
> VB3.0で作成した昔のプログラムを改修する必要が生じましたが古い開発環境がありません。
> VB3.0で作成したプロジェクトをVB6.0で開こうとしたらエラーが出てしまいました。
> VB6.0の開発環境でVB3.0のプロジェクトを動かしたいのですが何かいい方法がないでしょうか。
> 以上

え?
VB3.0って日本語版発売されてないと思うんですけど本当に3.0ですか?
まぁ2.0だったとしても かなり修正しないとそのままでは動かないはずです。
エラー出ても無視して開けば開きませんか?
とりあえずそれで開いて動かない部分の修正をしないとだめだと思います。
#8061-0
RE#8038:VB3とVB6との互換性
#VB3は使った事が無いので、VB2と同等と考えて回答します。

> VB3.0で作成したプロジェクトをVB6.0で開こうとしたらエラーが出てしまいました。
どういうエラーでしょうか?
それが分からないことには・・・

可能性1:
  VB3でバイナリモードでソースファイルをセーブしてしまっている。

  もしそうなら、
> VB3.0で作成した昔のプログラムを改修する必要が生じましたが古い開発環境がありません。
  は、致命傷ですね。
  確か、VB5以降ではバイナリモードのソースファイルは開けませんから、
  そのソースは捨てるしか有りません。

可能性2:
  互換性の無いコントロールを使っている。

  16ビット用のVBXで、32ビット版が用意されていないコントロールの場合、読み込めません。
  「何をやっているか」を整理して、似た様な機能を使って作り直すしか無いでしょう。
  また、VB標準のコントロール以外だと、互換性のある32ビット版を購入しないといけない場合も有ります。
#8093-0
RE#8040:VB3とVB6との互換性
> > VB3.0で作成した昔のプログラムを改修する必要が生じましたが古い開発環境がありません。
> > VB3.0で作成したプロジェクトをVB6.0で開こうとしたらエラーが出てしまいました。
> > VB6.0の開発環境でVB3.0のプロジェクトを動かしたいのですが何かいい方法がないでしょうか。
> > 以上
> 
> え?
> VB3.0って日本語版発売されてないと思うんですけど本当に3.0ですか?
> まぁ2.0だったとしても かなり修正しないとそのままでは動かないはずです。
> エラー出ても無視して開けば開きませんか?
> とりあえずそれで開いて動かない部分の修正をしないとだめだと思います。

アドバイス有り難うございました。
VB3.0は英語版です。
エラーを無視して先に進むととりあえず開きますが、一部のコントロール(SSCommand、
MSComm、SSFrame、Grid、SSCheck、SSOption)についてはロードされていません。
その後、VBXコントロールはVB5.0以降では使用出来ないことがわかりました。
VB3.0はどこかで入手出来ないのでしょうか。また、VB3.0とかVB4.0が
入手出来たとしてWindows98とかWindowsNT上で動作するのでしょうか。
#8095-0
RE#8061:VB3とVB6との互換性
> #VB3は使った事が無いので、VB2と同等と考えて回答します。
> 
> > VB3.0で作成したプロジェクトをVB6.0で開こうとしたらエラーが出てしまいました。
> どういうエラーでしょうか?
> それが分からないことには・・・

アドバイス有り難うごさいました。出たエラーは以下のようなものです。
(1)「パスがみつかりません:'C:\WINDOWS\SYSTEM\GRID.VBX'--プロジェクトのロードを続けますか?」
    同様のエラーがいくつかの*.VBXで出ました。
(2)(1)でその都度「はい」で進めると
   「D:\SPC\SPCMAIN.FRM 
     このファイルは以前のバージョンのVisualBasicのファイル形式で作成されているため、新しい形式
     に変換してからロードします。このファイルを保存するときは、VisualBasic6.0のファイル形式で
     保存されます。」
    同様のエラーがいくつかの*.FRMで出ました。
(3)(2)でその都度「OK」で進めると
   「このプロジェクトは以前のバージョンのVisualBasicで開発されています。このプロジェクトのいず
     れかのモジュールのコード内でデータアクセスオブジェクト(Database、Dynasetなど)の変数が
     宣言されている時は、このプロジェクトでDAO2.5か3.0のオブジェクトライブラリへの参照
     を設定して下さい。
     このライブラリへの参照を設定するには「追加する」を選択して下さい。「追加しない」を選択した
     ときは、後で[参照設定]ダイアログボックスを使って、ライブラリへの参照を追加または削除でき
     ます。」
(4)(3)で「追加する」を選択すると「データアクセスライブラリがありません。参照を設定できません。」
   と表示され「OK」を押すとプロジェクトをロードしないで終了します。
(5)(3)で「追加しない」を選択すると
   「読み込み中にエラーが発生しました。詳細は'D:\SPC\SPCMAIN.log'を参照してください。」が表示
     されます。同様のエラーがいくつか表示され「OK」で進めるととりあえずプロジェクトはロード
     されます。
     *.logの内容を確認すると「クラスSSCommand(コントロールComm)はロードされていません。」と
    いうようなメッセージがいくつかのコントロールについて書かれていました。
 
> 
> 可能性1:
>   VB3でバイナリモードでソースファイルをセーブしてしまっている。

ソースファイルは、テキストで残っていました。


> 
>   もしそうなら、
> > VB3.0で作成した昔のプログラムを改修する必要が生じましたが古い開発環境がありません。
>   は、致命傷ですね。
>   確か、VB5以降ではバイナリモードのソースファイルは開けませんから、
>   そのソースは捨てるしか有りません。
> 
> 可能性2:
>   互換性の無いコントロールを使っている。
> 
>   16ビット用のVBXで、32ビット版が用意されていないコントロールの場合、読み込めません。
>   「何をやっているか」を整理して、似た様な機能を使って作り直すしか無いでしょう。
>   また、VB標準のコントロール以外だと、互換性のある32ビット版を購入しないといけない場合も有ります。

エラーが出たVBXコントロールは、GRID.VBX,ANIBUTON.VBX,CMDIALOG.VBX,CRYSTAL.VBX,GAUGE.VBX
KEYSTAT.VBX,MSCOMM.VBX,MSMASKED.VBX,MSOUTLIN.VBX,PICCLIP.VBX,SPIN.VBX,THREED.VBXでした。
#8100-0
RE#8093:VB3とVB6との互換性
> エラーを無視して先に進むととりあえず開きますが、一部のコントロール(SSCommand、
> MSComm、SSFrame、Grid、SSCheck、SSOption)についてはロードされていません。
> その後、VBXコントロールはVB5.0以降では使用出来ないことがわかりました。
> VB3.0はどこかで入手出来ないのでしょうか。また、VB3.0とかVB4.0が
> 入手出来たとしてWindows98とかWindowsNT上で動作するのでしょうか。

VB6にはそのVBXとほぼ同等の動作をするOCX等が用意されていますので
それに張り替えて 若干作りなおせば動くと思いますよ

VB3.0は16Bitなので
32BitOSでは不具合が出るかもしれません。
#8105-0
RE#8095:VB3とVB6との互換性
Microsoft サポート技術情報の以下の文書は、必ず読んでおきましょう。
    文書番号: J045064 
    [VB] 16 ビット版から Visual Basic 6.0 への移植時の注意事項


# VB6に、SP3を適用してあるという前提の上で回答します。

>      れかのモジュールのコード内でデータアクセスオブジェクト(Database、Dynasetなど)の変数が
>      宣言されている時は、このプロジェクトでDAO2.5か3.0のオブジェクトライブラリへの参照
>      を設定して下さい。
メニューの[プロジェクト]-[参照設定]の中に、
   Microsoft DAO 2.5/3.51 Compatiblity Library
   Microsoft DAO 3.51 Object Library
   Microsoft DAO 3.6 Object Library
などといった物のいずれかがありませんか?
あるのであれば、そこにチェックを入れてみてください。


> エラーが出たVBXコントロールは、GRID.VBX,ANIBUTON.VBX,CMDIALOG.VBX,CRYSTAL.VBX,GAUGE.VBX
> KEYSTAT.VBX,MSCOMM.VBX,MSMASKED.VBX,MSOUTLIN.VBX,PICCLIP.VBX,SPIN.VBX,THREED.VBXでした。

代替可能なOCXについては、以下のようになります。


VB6 Learning Edition以上に、正式サポートされている上位コントロールが付属する物
   CMDIALOG.VBX     	Comdlg32.ocx

  ロングファイル名モードで使った場合、複数ファイル選択時のファイル名の区切りが、
  " "からvbNullCharに変更されますので、注意して下さい。


VB6 Professional Edition以上に、正式サポートされている上位コントロールが付属する物
   MSCOMM.VBX       	Mscomm32.ocx
   MSMASKED.VBX     	Msmask32.ocx
   PICCLIP.VBX      	Picclp32.ocx

  これらの使い方には、大きな違いはありません。


VB6 Professional Edition以上に、正式サポートされていない互換コントロールが付属する物
   GRID.VBX         	Grid32.ocx
   ANIBUTON.VBX     	Anibtn32.ocx
   CRYSTAL.VBX      	Crystl32.ocx
   GAUGE.VBX        	Gauge32.ocx
   KEYSTAT.VBX      	Keysta32.ocx
   MSOUTLIN.VBX     	Msoutl32.ocx
   THREED.VBX       	Threed32.ocx
   SPIN.VBX         	Spin32.ocx

  上記は、VBのセットアップ時にはインストールされません。VB6のCD-ROMの
  Common\Tools\Vb\Controls から、これらをシステムディレクトリにコピーした後、
  [コマンドプロンプト]か[ファイル名を指定して実行]から、
     REGSVR32 C:\Windows\System\ファイル名.ocx
  のように打ってください。(C:\〜\*.ocxの部分は、OCXファイルへの実際のフルパスです。)
  これで、コントロールがシステムにインストールされ、VBから使用可能になります。
  なお、コントロールの多くは、読み込み完了後にPictureBoxに化けてしまうかと思いますので、
  逐次手動で正しい上位バージョンのOCXに置換していってください。

  ……ただし、上記8ファイルについては、移植の為の互換性を目的として添付されているに過ぎず、
  VB6での動作保証はされていません。  順次、他のコントロールにて代替していきましょう。

  まず、Microsoft Gridコントロールは、Microsoft FlexGrid コントロールか、
  Microsoft Hierarchical FlexGridコントロールに変更した方がよいでしょう。
  この移植に関するコード記述の相違点については、Microsoft サポート技術情報の
     文書番号: J045327 
     [VB] グリッド コントロール (Grid、FlexGrid、HFlexGrid) の移行
  をご覧下さい。

  次に、Crystal Reports。これは、VB5付属版と同等のOEM製品が付いているに過ぎません。
  製品版に差し替える事をおすすめします。
  http://www.agtech.co.jp/products/crystal/

  キー ステータス。これはAPIを使って、コードでNumキーなどの状態を切り替えましょう。
  Webで検索すれば、サンプルコードも見つかると思います。

  Sheridan 3D Controls。これは標準コントロールのコマンドボタンや、
  Mswless.ocxのWLコマンドボタンなど、非3Dなコントロールで代替しましょう。
  あるいは、同等機能を持った製品版を購入しましょう。
  http://www.boc.co.jp/codepak/P1_76.htm

  それからスピン ボタンは、VB6のUpDownコントロールで代替しましょう。

# 相違点を書いていくとキリがないので、とりあえずこの辺まで。m(_ _)m
#8438-0
RE#8105:VB3とVB6との互換性
> Microsoft サポート技術情報の以下の文書は、必ず読んでおきましょう。
>     文書番号: J045064 
>     [VB] 16 ビット版から Visual Basic 6.0 への移植時の注意事項
> 
> 
> # VB6に、SP3を適用してあるという前提の上で回答します。
> 
懇切丁寧なアドバイス有り難うございました。さっそくコンバージョンすることにしました。
ところで SP3って何なのでしょうか。SP3を適用するのはどのようにしたらよろしいでしょうか。
初歩的な質問ですみません。
このページと関連する記事:
#8398-0VB4のプロジェクトをVB6で開くとエラー2000-03-09(木) 16:54
#217-0VBの違いについて2003-11-18(火) 02:51
#540-0VB2.0のプロジェクトをVB5.0で使いたい!!1999-08-02(月) 14:56
#579-2VB4からVB6への移植について2003-12-12(金) 14:02
#15834-016Bit版のWindowsAPI2000-02-09(水) 17:22
#2517-0VB4.0からVB6.0への移植1999-10-04(月) 20:21
#2530-0RE#2524:VB4.0からVB6.0への移植1999-10-05(火) 10:41
#1691-1互換性?2004-04-15(木) 13:29
#27447-0VB2からVB6への変更について2000-08-07(月) 12:56
#1443-0Enterprise単体とパッケージに違い?2001-03-28(水) 11:51
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)