アプリ版:「スタンプのみでお礼する」機能のリリースについて

他人様の作成したプログラムの改修をやることになりましたVB初心者です。

デザイン画面でコードを選択し、「定義」を右クリックすると
「'xxx' は非表示であるため、ここへはジャンプできません。」
と表示されます。
また、exe ファイルの実行時と比べて、プロジェクトウインドウに表示されるフォームやデザイナも少ないです。

これら非表示のモジュール(?)を表示するにはどのようにやればいいのでしょうか。
ご教示お願いいたします。

環境は Windows XP(SP3), Visual Basic 6.0 (SP6) です。

「VB6で、非表示モジュール(?)の表示方」の質問画像

A 回答 (15件中11~15件)

一応、VBを10年やってるから VB6 が現役の頃から知ってるけど、


インスタンスは VB が勝手に内部で用意する部分だから表に出て
くることは無いと思うよ。(それでプログラムに困った事もないし)

> 試しに、left や mid などの関数の「定義」をクリックしても
>「'Left' は非表示であるため、ここへはジャンプできません。」
>とダイアログが出てきました。
それは問題点を切り分けるべきでは?新規プロジェクトで確認
した限り、
・フォーム上のオブジェクトのインスタンスは定義からは表示できない。
(オブジェクトブラウザではProject1とかの下に表示)
・インスタンスのメンバは、クラスのメンバが定義から表示される。
・Left Mid といった関数は定義が表示される。
です。名前空間を辿ると VBA.Strings.Mid のようなので、それを
書いてみるとか。それで上手くいくようになるんだったら、
VB が用意している Mid じゃない Mid が存在しているのかも。

> ファイルが分割
やった事ないのでどのような操作か分かりません。DLL(OCXなど) にして
外部参照とは違いますよね?そもそも EXE としてコンパイル可能なら
プロジェクトに追加する必要のあるものは無いと思っていましたが。

> exe ファイルの実行時と比べて、プロジェクトウインドウに
> 表示されるフォームやデザイナも少ないです。
これもよく分からない表現です。同じフォームを使いまわすだけでも
そんな動きを作れるわけで、だから何が問題なの?といった気も
します。ちゃんとコードで呼び出されているフォームがどこに
存在するものか1つ1つ確認すべきでは?

この回答への補足

> DLL(OCXなど) にして外部参照とは違いますよね?

はい、違います。

> そもそも EXE としてコンパイル可能なら
> プロジェクトに追加する必要のあるものは無いと思っていましたが。

はい、私の認識もそうでしたが、私の見る限りフォームの数が足りないです。

> 同じフォームを使いまわすだけでもそんな動きを作れるわけで、

コードを見たところ、動的にコントロールを作成するようなコードはありませんでした。

詳しい解説ありがとうございました。もう少しお付き合いお願いいたします。

補足日時:2011/07/28 17:55
    • good
    • 0

>確認しましたところ、プロジェクトエクスプローラ上に表示


>されているフォームは4つ、フォルダ内に表示されているフォームも4つです。

ということであれば、

>exe ファイルの実行時と比べて、プロジェクトウインドウに
>表示されるフォームやデザイナも少ないです。

このことと合わせて考えるとファイルが分割されている
可能性が一番高いように思われます。

ほかに関連するフォルダやファイルがあるならば、
プロジェクトエクスプローラのプロジェクト名の
ところで右クリックして、「追加」から「ファイルの追加」
を選択して必要なファイルをプロジェクトに追加
すればいいのですが。

この回答への補足

何度もご回答ありがとうございます。

.vbp ファイルのあるフォルダのファイルは全てプロジェクトエクスプローラーに表示されています。
ほかに関連するファイルは支給されていません。
なのにデザイナ画面から実行すると、プロジェクトエクスプローラ内にないフォーム・デザイナも表示されます。

何度もすみません。
ほかに考えられる原因はあるでしょうか?

補足日時:2011/07/28 13:14
    • good
    • 0

確認ですが、プロジェクトは一つのフォルダにまとめて


収められているとして、そのフォルダにはプロジェクト
エクスプローラに表示されているフォーム以外のフォームが
ありますか?

この回答への補足

ご回答ありがとうございます。

確認しましたところ、プロジェクトエクスプローラ上に表示されているフォームは4つ、フォルダ内に表示されているフォームも4つです。

初心者でうまく説明できていなくてすみませんです。

補足日時:2011/07/28 11:11
    • good
    • 0

画像から、



Call Render_PerPrintReport(Me.arxxxxx

のように見えますが、たぶん Me.arxxxx とあることから、
コード表のヘッダー部分にfrmREPORTとありますから、
このフォームのテキストボックスか何かをさしているのでは
と思われます。したがって、定義を指定してもオブジェクト
ブラウザには表示できない、ということになります。

試しに、オブジェクトブラウザを起動して、arxxxxを
コンボボックスに貼り付け、検索ボタンを押してみて
ください。多分、検索結果にライブラリはUnKnown1、
クラスはForm、メンバはarxxxx、と表示されると
思います。

定義を選択して表示されるのはオブジェクトライブラリ
にコード定義されるていることが最低条件です。
たとえば、関数、プロシージャ、プロパティ、
などです。

この回答への補足

回答ありがとうございます。

試しに、left や mid などの関数の「定義」をクリックしても「'Left' は非表示であるため、ここへはジャンプできません。」とダイアログが出てきました。

ありがとうございます。

ただ、まだ実行ファイルの画面と比べるとプロジェクトエクスプローラーに表示されるフォーム数、デザイナ数が足りません。
これら非表示のモジュールを表示させる方法を教えてください。

よろしくお願いします。

補足日時:2011/07/28 10:08
    • good
    • 0

情報が少ないので、適当な回答が出せません。



もう少し状況を詳しく書いたら他の方からも多く助言が
得られると思いますよ。

この回答への補足

回答ありがとうございます。

どこをどう詳しく書けばもわからないので、画像を追加しました。

「arXXXX」を右クリックして「定義」をクリックすると、
「'arXXXX' は非表示であるため、ここへはジャンプできません。」というエラーダイアログがでます。

補足日時:2011/07/27 15:46
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A