• ベストアンサー

VB6で、非表示モジュール(?)の表示方法

他人様の作成したプログラムの改修をやることになりましたVB初心者です。 デザイン画面でコードを選択し、「定義」を右クリックすると 「'xxx' は非表示であるため、ここへはジャンプできません。」 と表示されます。 また、exe ファイルの実行時と比べて、プロジェクトウインドウに表示されるフォームやデザイナも少ないです。 これら非表示のモジュール(?)を表示するにはどのようにやればいいのでしょうか。 ご教示お願いいたします。 環境は Windows XP(SP3), Visual Basic 6.0 (SP6) です。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

(1) このプロジェクトを実行すると、exeファイルと同じように 機能しますか? (2) >プロジェクトエクスプローラ内にないフォーム・デザイナも表示されます。 このフォームデザイナをクリックするとフォームの デザインビューが表示されますか。示された フォームのヘッダには ファイル名(Form) のように 表示されていますか。 また、プロジェクトエクスプローラには ファイル名(ファイル名.frm) のように表示されていますか。 (3) (2)が違う場合、 ファイル名(ファイル名.dsr) のような名前になっていませんか。 (4) (2)、(3)も違う場合はフォルダの中にある他の ファイルの拡張子はどのようなものがありますか。

aztek
質問者

補足

(1) はい、exe と同じように動作します。 (2) はい、フォームのデザインビューが表示されます。 フォームのヘッダには frmINIT (Form), frmREPORT (Form) のように表示されます。 プロジェクトエクスプローラには frmINIT (frmINIT.frm), frmREPORT (frmREPORT.frm) のように表示されています。 (3) 「デザイナ」フォルダの中には 5 つ、repKAISEKI01 (repKAISEKI01.Dsr) のようなファイルがあります。 (4) .frm, .bas, Dsr です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (14)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.15

iniファイルもそうですが、最初から作成して おくものか、あるいは新規インストールした場合に、 いずれかのタイミングでプログラムから作成 されるものか、なければ作成されるものか、 あるいは、都度作成、削除が されるものか、そういったファイルが他に 存在するかも確認が必要です。 必要に、応じては一時ファイルとして作成する コードの追加が必要になるかもしれません。 意地悪く突然そうしたファイルが失われると どうなるか、またどう対応するかの負荷テスト も必要です。 そのためのロールプレイングとも言えますが。

aztek
質問者

お礼

ご回答、恐れ入ります。 おっしゃられることを頭に入れてテストしてみます。 ご忠告ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.14

>iniファイルがあったので、それを新しいフォルダ >にコピーしたら正常動作しました。 一応、一通りロールプレイングをして、 問題がないか、確認が必要です。 他にリンクが切れているものが 出る可能性もあるので、あとの 作業は慎重にしてください。

aztek
質問者

お礼

はい、慎重に一通り動かしてみます。

全文を見る
すると、全ての回答が全文表示されます。
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.13

>「.Show」でプロジェクト全体を検索しました。 >検索結果が(あるべき)フォーム数より少なかったです。 その方法は対象がフォームで通常のコマンドで表示している場合には 有効ですが、今は状況もよく把握できない状態です。通常の手法とは 違う可能性があるのですから、それで調査できているとは言えません。 例えば、 > C:\Program Files\AReport15\ActRpt15.dll ActiveReport を使っているのですから、レポートの表示は  ActiveReport1.Run とかになります。「.Show」では検索できません。 実際にフォームを見比べて、プロジェクトに存在しないと言っている 画面を表示させる部分のプログラムで何をしているかを確認して下さい。

aztek
質問者

補足

ActiveReport のコードを ReportStart を重点的に読みました。 プロジェクトに存在しないフォームへのコードはありませんでした。 すみません、初心者丸出しで。 お付き合いいただきありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.12

確認のため: 元のプロジェクトと比べて、入れなおしたプロジェクト のプロジェクトエクスプローラとフォルダにあるファイル数は 変化していますか。 元のプロジェクトにあるフォルダのファイルで、Excel、テキスト、 CSV、フォルダなど他のファイルは存在していませんか。 >「実行時エラー '9': インデックスが有効範囲内にありません。」 変数uvlng_AnaLCDataPriを取得する参照先がプロジェクトに存在 するか検索で確認してみてください。

aztek
質問者

お礼

> > 変数uvlng_AnaLCDataPriを取得する参照先がプロジェクトに存在 > > するか検索で確認してみてください。 > > 取得時の値が、元の版と新しいフォルダ版で違っておりました。 > 同じデータを解析しているのに、なぜ・・・。 iniファイルがあったので、それを新しいフォルダにコピーしたら正常動作しました。 お騒がせしました。

aztek
質問者

補足

> 元のプロジェクトと比べて、入れなおしたプロジェクト > のプロジェクトエクスプローラとフォルダにあるファイル数は > 変化していますか。 はい、.DCA, .dsx, .frx, MSSCCPRJ.SRC, VB2(~7).tmp ファイルが増えました。 > 元のプロジェクトにあるフォルダのファイルで、Excel、テキスト、 > CSV、フォルダなど他のファイルは存在していませんか。 存在していません。 > 変数uvlng_AnaLCDataPriを取得する参照先がプロジェクトに存在 > するか検索で確認してみてください。 取得時の値が、元の版と新しいフォルダ版で違っておりました。 同じデータを解析しているのに、なぜ・・・。

全文を見る
すると、全ての回答が全文表示されます。
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.11

>ActiveXファイルが存在しているはずですが。 参照設定してると思うんだけど、そうであれば参照設定画面で表示 される物理パスで確認できるのでは? >> 同じフォームを使いまわすだけでもそんな動きを作れるわけで、 >コードを見たところ、動的にコントロールを作成するようなコードはありませんでした。 コントロール?画面はフォームですよね? exe ファイルの実行時に表示される画面は、ボタンをクリックとか で表示されるものですよね?それがプロジェクトに見つからないと 言っているように解釈したのですが、フォームを起動する場所も 見つからないのですか?(フォームを起動するイベントも書かれていない?) それは無いと思うのですが。。。 そこに書かれているオブジェクト名でオブジェクトブラウザを検索 (定義へ移動ではなく、手入力で検索)した結果を見れば、何か分かる 気がしますが。

aztek
質問者

補足

> >ActiveXファイルが存在しているはずですが。 > 参照設定してると思うんだけど、そうであれば参照設定画面で表示 > される物理パスで確認できるのでは? C:\Program Files\AReport15\ActRpt15.dll です。 > exe ファイルの実行時に表示される画面は、ボタンをクリックとか > で表示されるものですよね? はい。 > それがプロジェクトに見つからないと > 言っているように解釈したのですが、フォームを起動する場所も > 見つからないのですか? 「.Show」でプロジェクト全体を検索しました。 検索結果が(あるべき)フォーム数より少なかったです。 いろいろ惑わせてすみません。もう少しお付き合いお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.10

dca  ActiveX デザイナ キャッシュ dsx  Active デザイナ バイナリ ファイル frx  バイナリ フォーム ファイル vbw  Visual Basic プロジェクト ワークスペース ファイル したがて、ActiveXファイルが存在しているはずですが。 No8の要領で、プロジェクトから追加できるファイルはすべて 追加してみてください。

aztek
質問者

補足

なんども回答ありがとうございます。 はい、ActiveX を使っております。 プロジェクトエクスプローラー内のファイルを全て解放して、追加しなおしました。 今度は動作中に「実行時エラー '9': インデックスが有効範囲内にありません。」が表示されます。 rvtyp_NowAnaRec.mdat_AEday = uatyp_AnaLCData(uvlng_AnaLCDataPri - 1).K_DSOKUTEIBI のuvlng_AnaLCDataPri が 0 のままで初期化されていないです。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.9

もし、単にフォルダオプションで 隠しファイルおよび隠しフォルダを表示しない、 などにチェックが入っている、ということは ないでしょうね?

aztek
質問者

補足

それは大丈夫です。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.8

もし、No7の操作で新しいフォルダに ファイルが今までよりも増えていたら、 No7の最後、 >(1)、(2)を実行してフォルダの中身と、プロジェクトを >立ち上げてプロジェクトエクスプローラの中身を >比較してみてください。 ではなく、一度あたらしいフォルダのプロジェクトの プロジェクトエクスプローラのオブファイルをを一度 すべて解放して、あたらしいフォルダにあるファイルを 追加してみてください。

aztek
質問者

補足

今日は時間がきましたので、明日実行してみます。 いろいろお付き合いいただいて恐縮です。 明日もよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.7

一度、 (1) 新規に他のフォルダを作っておき、 ファイルから「名前をつけてプロジェクトの保存」 を選択し、そのままの名前で保存。 (2) プロジェクトエクスプローラにあるオブジェクトの 上で右リックから「名前をつけてxxの保存」を選択し、 (1)と同じフォルダにすべて保存。 (1)、(2)を実行してフォルダの中身と、プロジェクトを 立ち上げてプロジェクトエクスプローラの中身を 比較してみてください。

aztek
質問者

補足

フォルダの中には、.DCA, .dsx, .frx, ,vbw ファイルができましたが、これは違いますよね?

全文を見る
すると、全ての回答が全文表示されます。
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.5

一応、VBを10年やってるから VB6 が現役の頃から知ってるけど、 インスタンスは VB が勝手に内部で用意する部分だから表に出て くることは無いと思うよ。(それでプログラムに困った事もないし) > 試しに、left や mid などの関数の「定義」をクリックしても >「'Left' は非表示であるため、ここへはジャンプできません。」 >とダイアログが出てきました。 それは問題点を切り分けるべきでは?新規プロジェクトで確認 した限り、 ・フォーム上のオブジェクトのインスタンスは定義からは表示できない。 (オブジェクトブラウザではProject1とかの下に表示) ・インスタンスのメンバは、クラスのメンバが定義から表示される。 ・Left Mid といった関数は定義が表示される。 です。名前空間を辿ると VBA.Strings.Mid のようなので、それを 書いてみるとか。それで上手くいくようになるんだったら、 VB が用意している Mid じゃない Mid が存在しているのかも。 > ファイルが分割 やった事ないのでどのような操作か分かりません。DLL(OCXなど) にして 外部参照とは違いますよね?そもそも EXE としてコンパイル可能なら プロジェクトに追加する必要のあるものは無いと思っていましたが。 > exe ファイルの実行時と比べて、プロジェクトウインドウに > 表示されるフォームやデザイナも少ないです。 これもよく分からない表現です。同じフォームを使いまわすだけでも そんな動きを作れるわけで、だから何が問題なの?といった気も します。ちゃんとコードで呼び出されているフォームがどこに 存在するものか1つ1つ確認すべきでは?

aztek
質問者

補足

> DLL(OCXなど) にして外部参照とは違いますよね? はい、違います。 > そもそも EXE としてコンパイル可能なら > プロジェクトに追加する必要のあるものは無いと思っていましたが。 はい、私の認識もそうでしたが、私の見る限りフォームの数が足りないです。 > 同じフォームを使いまわすだけでもそんな動きを作れるわけで、 コードを見たところ、動的にコントロールを作成するようなコードはありませんでした。 詳しい解説ありがとうございました。もう少しお付き合いお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAからVB6への移行

    エクセルVBAでフォームを作成して使用していたものがあります。 諸般の事情でエクセルVBAからVB6sp6に移行することになりました。 エクセルVBAからフォーム、クラス、標準モジュールをエクスポートして、VB6のプロジェクトへインポートしました。 エクセルVBA上でフォームだったものがVB6ではデザインに変わりました。 これをVB6のフォームにしたいと思い、VB6でフォームを新規作成してデザインのフォームから各コントロール(ボタン等)をコピーペーストしようとしたところ、できませんでした。 1.フォームをVB6で作り直すしか方法が無いのでしょうか。 2.どのような理由でコピーペーストができなくなっているのでしょうか。 よろしくお願いします。

  • .net VB2003のデザイナ表示の遅さについて(開発時)

    .net VB2003のデザイナ表示の遅さについて(開発時) 現在仕事で.net VB2003を使用してシステム開発(改修)を行っております。 画面レイアウトのサンプル作成などを行っているのですが、 開発の際にフォームのデザイナを開こうとしても、表示までとても時間がかかります。 開発作業に支障をきたしています。 表示時間を短くする良い方法が有れば教えて頂けないでしょうか?

  • VB6.0 モジュールウィンドウの移動

    VB6.0で、人から頂いたプロジェクトファイルを開き、編集しようとした所、 いくつかあるモジュールのうち、1つのモジュールだけ、 エディタウィンドウのタイトルが上部のメニューに隠れてしまい、 ウィンドウの移動が出来ません。 隠れているのはタイトルだけなので、編集する際には問題ないのですが、 凄く気になります。 タイトルが隠れた状態でモジュールのエディタウィンドウを移動させる方法があればお教え願います。

  • デザイナの表示ができない(VB.NET2003)

    OS : WinXP SP1 ver: VB.NET 2003  VB.NET初心者で、困っています。  上記環境で、デザイナが表示できない状況に陥っています。  事の発端は、コードエディタでクラス名を変更したことに始まります。  以後、そのフォームのデザイナを表示しようとすると、「URLが無効です」というエラーになってしまいます。  あちこち調べたのですが、解決には至らず、ココに助けを求めた次第です。  どうぞ、宜しくお願いしますm(_ _)m

  • VB.netの初学者なんですが、

    VB.netの初学者なんですが、 VB.netが詳しい方、是非お願いいたします。 visual studio2008で、以前のVB.net(2003)のプログラムをコンパイルしてますが、 フォルダ名(abc.net)配下にいくつのプロジェクトがあります、main,ttt,ccc.exeのプロジェクトがありますが、abcってのプロジェクトがありません。 普通にコンパイル通れば、main.exe,ttt.exe,ccc.exeなどの実行モジュールが生成されて、デバッグ実行すれば、...\abc.net\obj\Debug\配下にmain.exe,main.pdb,ttt.exe,ttt.pdb,ccc.exe,ccc.pdbなどのファイルを生成できました。 以前の方は...\abc.net\obj\Debug\abc.exe,とabc.pdbの二つファイルを生成していました。私はすべてのプロジェクトをコンパイルして、デバッグ実行させて、その二つファイル(abc.exe,abc.pdb)の更新 日付は変わらず、以前の日付になっています。 どうすれば、abc.exeっていう実行モジュールが生成できますか。 それは現有のプロジェクト(main,ttt,ccc)中の1つプロジェクトにより、生成したと考えていますが、 どのファイル(拡張子)を見ると、どのプロジェクトより生成したことを分かりますか。 少し長いですが、よろしくお願いいたします。

  • フォームが開けなくなりました

    VB6のsp6での質問です。開発環境はWinXP Proです。 作成中に、急に一つのフォームが開かなくなりました。 プロジェクトエクスプローラにはフォームやモジュールなどが表示されていますが、その一つをダブルクリックするとフォームが開かれますよね。それが、何も開かないフォームが出来てしまったんです。プログラムを実行すると、その見えないフォームもきちんと表示され、動かすことが出来ます。また、コードを表示することは出来ます。ただ画面が表示されないので、デザインの変更が出来ない状況です。 原因のお分かりになる方、よろしくお願いいたします。

  • モジュールの開発方法について

    どなたかご教授ください。 現在、 メインウィンドウにて操作した内容(マウスのクリックなど)をメインウィンドウとは別のウィンドウに詳細を表示するといったモジュールの開発が必要となっているのですが、開発初心者であり、どのような開発を行えばよいかわからない状況です。 機能として必要な内容としては、下記のようなものとなります。 ・exeファイルではなくdllファイルなどのモジュール ・開発環境はVisual studio 2010で言語はC# ・メインウィンドウ操作で行った内容をモジュールで開発した別ウィンドウに詳細を表示するため、  GUI付きのモジュール開発が必要  (例:マウスクリックの座標位置をモジュール上で開発したラベルなどに表示させる) つきましては、どなたか開発のためのアドバイスや、参考サイト・書籍がありましたら、ご教授いただければ幸いと存じます。

  • C# フォームを追加するとエラー

    C# 勉強中の者です。Visual Studio 2008 を使用しています。 既に一つのフォームで実行できているプロジェクトがあり、[プロジェクト]-[Windows フォームの追加]から追加してフォームを2つにしてみようと思いましたが、以下エラーが出てしまいます。 <エラー内容> ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました: Form2 --- 基本クラス 'System.Object' をデザインできません。 <このエラーのヘルプ> Visual Studio 内のクラスが、画面上でデザインできるクラスから継承されていないため、ファイルのデザイナを開けません。 どうすればフォームを追加することができるのでしょうか? よろしくお願いします。

  • フォーム1[デザイン]タグが表示されない

    言語:Visual c++ 2008 Express Edition OS:win xppro VC++であるプロジェクトの画面中央にあるプログラムが表示されているところに、 フォーム1[デザイン]タグ がありません。 他のプロジェクトではフォーム1[デザイン]タグは表示されます。 やりたいことは、 フォーム1[デザイン]タグを表示して、プロパテイに値を設定することです。 このプロジェクトのフォーム1[デザイン]タグを表示する方法を知っている方がありましたら教えて下さい。 よろしくお願いします。

  • vb2008 フォームのコピー方法を教えて下さい

    windows xp でVB2008を使っています。 「プロジェクトA」のフォームを別の「プロジェクトB」にコピーして使用したいのですが、プロジェクト間のコピー方法が良く分かりません。 フォームのエクスポート・インポートも見当たらないし・・ 初心者でゴメンなさい。教えて下さい。