• 締切済み

初心者です。Visual Basicでエラー発生

高校見学に行ってきて、プログラムをVBで作りました。VBは初めてです。 コンパイルして起動までは高校見学では、できました。 いざ家でやろうと同じようにやったのになぜか起動できません。少し改造(画像を変えるぐらい)しました。 C++を少しだけやっていた記憶があるので、コンパイルとか言いましたが、あっていたでしょうか? スロットゲームを作りました。 Errorの原因:共有メンバを参照するには、オブジェクト参照が必要です。 ↑どういうことですか? ご観覧どうもありがとうございました。

noname#222852
noname#222852

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

http://msdn.microsoft.com/ja-jp/library/zwwhc0d0(v=vs.90).aspx オブジェクト(クラス)のインスタンスを生成せずに そのクラスのメソッドなりプロパティ(=メンバ)を 使用しようとしているからです。

noname#222852
質問者

お礼

よくわかりませんがありがとうございます。

  • itu1989
  • ベストアンサー率44% (37/83)
回答No.1

VBは詳しくありませんが、オブジェクトが無いとかでしょうか? デバッグで確認したらすぐに原因箇所がわかりそうな感じがしますけど。 ソースを掲示してもらえればちゃんとした回答が貰えると思いますよ^^

noname#222852
質問者

お礼

そうなんですか! 試してみます。

関連するQ&A

  • VB .NETに関する書籍について

    現在までVB6でプログラミングをしていましたが、VB.NETに乗り換えてから、まったく使えなくなってしまいました。 Form1をクリックしたらForm2を表示するようにしたくて単純に Form2.show とやってみたところ、 「非共有メンバを参照するには、オブジェクト参照が必要です。」と言われますが、はたして何のことやら??と戸惑っています。 VB6では、コントロール操作やファイルの書込み、条件判断、エラー処理などといったプログラムの基本はわかっていますので、そのまま応用できると思うので、こんな私が参照すべき書籍があれば教えていただきたいと思います。

  • 実行時エラーについて

    お世話になっています。教えて下さい。 VBで作ったプログラムです。 デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。 実行時エラー:'91' object変数、またはwithブロック変数が設定されていません。 どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。 よろしくお願いします。

  • .objファイル、.lib ファイルについて

    ◆C++でのコンパイルされたプログラムの参照について。  以前、VB.netで開発をしていた時は、コンパイルをするとDLLが作成され、  それを他のプログラムからリンクして使用していました。  C++の場合h、cppのファイルをコンパイルすると、「.DLL」はできないのでしょうか? ◆.obj、.lib について  Visual Studioにて、.obj、.lib を、参照先に設定していますが、  内容をよくわかっていません。  オブジェクトリンク、ライブラリリンクとは、  (1)それぞれどんな概念なのでしょうか?  (2).obj、.libでは何が違うのでしょうか?

  • Visual Basicプログラムのエラーについて

    「Visual Basicでエンジョイプログラミング」(CQ出版社) という本の11章VisualBasicで動かす自作装置の製作方法、 A-Dコンバータの製作と題してA-Dコンバータのプログラムが書いてあるのですが <同じプログラムが掲載されているホームページ>http://mweb.jrscomware.com/tie/data/KyouzaiDB/bg/07/76aa45a7e4cc774b6976aad26a0709/_5051b778aae80343/b778768d0222/b778768d0222.htm 本に従ってプログラムを書いたのですが、実行しようとしたら Public Const CLRDTR = 6 Public Const SETDTR = 5 Public Const CLRRTS = 4 Public Const SETRTS = 3 Public Const MS_CTS_ON = &H10& Public Const MS_DSR_ON = &H20& の部分が赤色の表示になって 「コンパイルエラー 定数、固定長文字列、配列、ユーザー定義型、 およびDeclareステートメントはオブジェクトモジュールのパブリックメンバとしては使用できません。」 と表示されたのですが、僕はまったくの初心者なので ヘルプを見てもどのように修正すればいいのか良く分かりません。 何か知っている方がいらしゃいましたら教えてください。よろしくお願いします。

  • VB5がXPでエラー

    お世話になります。 Windows98で開発したVB5のプログラムが現在もXPで動いています。 98で作成したのは当方ですが、XPへ移したのは別人です。 で、先日実行中にエラーが出たということでソースをみようとしたところVBがエラーで立ち上がらず見ることがでなかったので、 他のXPのPCへVB5へインストールし、そちらにソース、データを移し、コンパイルしたところ、エラーが出て先へ進みません。 場合1) 参照設定: DAO 3.51 の場合、DBEngine.Workspaces(0) でエラー 場合2) 参照設定: DAO 3.6 の場合、コンパイルはできるが書き込みの時点で、 「このコンポーネントのライセンス情報が見つからない。デザイン環境でこの機能を使うためのライセンスがない」 とのエラー 場合2)で、MaskEdBox の参照をはずし、ソース、ホームからも削除してみたが同じエラーがでます。 尚、DBList, DBguridなど使用しています。 何かしらお気づきの点があればアドバイス、よろしくお願いします。

  • コードで参照設定をする方法

    VBのコード内で、オブジェクトへの「参照設定」をさせる方法を教えていただけませんでしょうか。 目的は、自分のコンピュータでは参照設定してあるオブジェクトでも、ほかのパソコンではされていると限らないため、アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。参照設定がないと、そのオブジェクト変数の宣言文がコンパイルエラーとなってしまいますよね・・・。 VBAのヘルプによればこちらのメソッド(object.AddFromGuid(guid, major, minor) As Reference)を使うといいような気がするのですが、参照設定したい先(具体的には「Microsoft Scripting Runtime(scrrun.dll)」)の「GUID」がわかりません。レジストリを探さないといけないのでしょうか・・・。探し方がわかりません。

  • VBの参照設定について

    はじめまして、Doryaです。 早速ですが、VBでACTIVEX.DLLを作成してローカルのドライブにおいてEXEプログラムより参照設定しています。 このEXEをコンパイルして、他のPCへ移しましたがプログラムが、起動しませんでした。他のPCも、コンパイルしたPCと同じようにACTIVEX.DLLを、デシトリビューションウイザードで作り登録していました。 どうも、参照設定がうまくできてないような気がします。ためしに、プログラム(EXE)をデシトリビューションウイザードを使ってインストールしましたら、問題なくうごきました。これって、DLLとEXEを別々にコピーして、配布することはできないのでしょうか?

  • 実行時のエラー

    一般的な話として聞いてください。 プログラムを作って、コンパイルし、エラーもなかったのに 実行するとメモリが参照できません。 というエラーが出たとします。 みなさんなら、真っ先に確かめる、ためす、あるいは 考えることはなんですか? プログラムの中身はどうでもいいですが、必要なら、 ゲームやアプリケーション開発ではなく数学的なプログラム、 つまり、微分方程式を解くとか、全ての魔方陣を作成するとか そういうものを想定してください。

  • 32ビット用Visual Basic 4.0ソフト

     いつも、解答いただきありがとうございます。  Windows8.1、NEC lavie 64ビットのノートパソコンを使用しています。  従来は、WindowsXP 32ビットマシーンを使用していました。  LETSCLIPと言うクリップのユーティリティプログラムを使用しています。  プログラム内部で、VB4.0 Visual Basic 4.0を使用しています。マイクロソフトがサポートを終了していることを知っています。だからと言って使用できる範囲で使用することは、問題ないでしょう。動かなくなっても保証の限りで無いというだけです。  64ビットの機械は、32ビットの上位互換があり、基本的には、32ビットのソフトも動くはずです。  VB4.0 Visual Basic 4.0で必要になるライブラリーファイルを C:\Windows\system32\ のフォルダに全て入れています。それなのに  Windows8.1の元で、インストールしようとすると、 VB4.0 Visual Basic 4.0のライブラリーを引っ張ってこようとして、ここで、 VB4.0 Visual Basic 4.0のライブラリーを見つけることが出来ませんのエラーが出ます。 ●(Q01)C:\Windows\system32\のフォルダの中にライブラリを入れておけば、どこのフォルダから実行しても、 最初の起動時にパスが切られているので、指定のライブラリファイルは、参照できるはずでは、無いのでしょうか? ●(Q02) もし、それでも、参照できないと言うのであれば、起動したフォルダの中にライブラリをコピーして入れれば、インストール時と実行時にライブラリを参照して正しく実行できるのでしょうか?  LETSCLIPと言うプログラムが、今では、ほとんどどこにも登録されてなく、サポートも終了していて64ビット版のプログラムを作り直してもらうことが困難なのです。  32ビットバージョンのプログラムは、多く、64ビットバージョンに作り直されているようです。 ●(Q03) しかし、そのままのプログラムで、64ビットマシーンで動く場合も有るようです。これは、64ビットの機械が32ビットの上位互換で作られているせいでしょうか?  敬具

  • VBからAccessのデータベースをよみたい。けどエラー

    こんにちわ 先日 http://oshiete1.goo.ne.jp/kotaeru.php3?q=681876 でVBからアクセスのデータベースを読み込むことで 質問したものです。 (VB6.0 Access2000 Win2000でやってます) VB6.0にバージョンアップし(DAO3.6を選択するため)、変数も定義できたのですが、 Private Sub Form_Load()の部分で(以下) Set wspace = DBEngine.Workspaces(0) Set dbname = wspace.OpenDatabase(mypath & "\db1.mdb") dbname.QueryTimeout = 0 .QueryTimeoutに対してコンパイルエラーがでてしまいます。「メソッドまたはデータ メンバが見つかりません」というものです。そういえばOpendatabaseなどは「.」を打った時点でメソッド?の一覧が出るのですが、QueryTimeoutはでてきません。 DAO3.6以外にもなにか追加しないといけないのでしょうか? ヘルプで見たのですがメンバとは「コレクション、オブジェクト、またはユーザー定義型を構成する要素。」・・・ということでチンプンカンプンです(ノД`) ちなみにdbname.QueryTimeout = 0の部分をコメントアウトすると、その1つ前の行に対して「型が一致しません」とでてしまいます(ノ∀;) Accessを読み込んだ後は特に複雑なことはしないので(足したり参照する程度)、ここさえのりきれば・・・なのですがエラーばかりでて困ってます(ノД`) それともdb1.mdbファイルじたいがなにか読み込めない形式になってることが原因なのでしょうか? VB超初心者にもわかるようにコメントいただけると嬉しいですM(__)M

専門家に質問してみよう