• ベストアンサー

本当にPublicな変数(配列で)

複数のフォームがあるVisualBasicのプログラムを作っているのですが、そのすべてのフォームからアクセス(値の変更も含める)できる配列の変数というのはないのでしょうか?  Public 文を使ってみると、「定数、固定長文字列、配列、ユーザー定義型文字列、およびDeclareステートメントは、オブジェクトモジュールのパブリックメンバとしては使用できません。」 というエラーメッセージがでます。 解決法を教えてください。

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

  • ベストアンサー
  • jmh
  • ベストアンサー率23% (71/304)
回答No.1

「オブジェクトモジュールのパブリックメンバとしては」はダメなので、 メニューの プロジェクト(P) → 標準モジュールの追加(M) で標準モジュールを追加しては、どうですか。

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(1)標準モジュールModule1に Public s(2) As String Sub test01() Form1.Show End Sub Sub test02() MsgBox s(1) MsgBox s(2) End Sub (2)フォームモジュールForm1のコードに Private Sub Text1_Click() s(1) = Form1.Text1.Text Form2.Show End Sub (3)Form2のコードに Private Sub Text1_Click() s(2) = Form2.Text1.Text test02 End Sub をいれる。 (4)test01を実行する。 (5)Form1のText1に文字を打ちこみClickする。 (6)Form2のText2に文字を打ちこみClickする。 (7)Form1に打ちこんだ文字がMSGBOXにでて、 続いてForm2に打ちこんだ文字がMSGBOXで出ます。 (8)ということは(2)のs(1)、(3)のs(2)に 正しくセットできたことではないでしょうか。

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

jm4cvpさん、こんばんは。 挿入→標準モジュールの中でpublic文で配列や変数を定義して下さい。 ではでは!

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

関連するQ&A

  • Excel VBA でのAPI呼び出しが・・・

    マクロ初級です。 windowsXP(SP3) office2007 Excelのマクロで、APIのSetActiveWindowを使おうとしましたが、宣言のところで エラーがでました。  設定は、  Public Declare Function SetActiveWindow Lib "user32" (ByVal hWnd As Long) As Long  もしくは  Public Declare Function SetActiveWindow Lib "user32" (ByVal hWnd&) As Long  コンパイルエラー  定数、固定長文字列、配列、ユーザ定義型および Declare ステートメントは  オブジェクトモジュールのパブリックメンバとしては使用できません。 ウィンドウをアクティブな状態等に用いたいのですが、定義の仕方が悪いのでしょうか? 皆さま、ご教授下さい。

  • form1 から form2 へのデータの受け渡し方

    まだまだ勉強中の初心者なのですが、お願いします。 今同プロジェクト内の form1 から form2 へデータを渡そうとしているのですが、 'form1 '------------------------------- Private Sub Command2_Click() Form2.m_Get.ites = 1 Form2.Show (1) End Sub 'form2 '-------------------------------- Public m_iGet As TES 'Module1 '-------------------------------- Type TES ites As Integer End Type 理想はこのようにform2の構造体へform1から値を代入したいのですが。 コンパイルエラー 定数、固定長文字列、配列、ユーザー定義型および Declareステートメントはオブジェクトモジュールの パブリックメンバとして使用できません。   ということはこの渡し方は無理なんですね。 配列も無理ですね。 なるべくグローバル変数でのやり取りはしたくはないのですが、、、。 何か他にいい方法ありますか? よろしくお願いします。

  • メンバ変数に関して

    現在、C++にてプログラム作成しております。 1点プログラミングを行っている中で疑問になった点があります。 アイデア・方法等があれば教えて頂けると幸いです。 現在、メンバ変数として配列を定義したプログラムを作成しております。 そのメンバ変数を同クラス内のたくさんのメソッドから呼び出して処理を行っているのですが、そのメンバ変数の配列数を固定配列数ではなく、可変な配列数にしたいと考えております。 プログラムの実行後に取得した値をメンバ変数の配列数にしたいのです。 このように、メンバ変数の配列数の可変可を実施することは可能でしょうか?

  • READ、DATAに相当する処理

    ノーマルなBASICにあるREADとDATAステートメントですが、VisualBasicにはありません。 配列に固定文字列を読み込ませておきたいだけなのですが、どうすれば簡単に実現できますか。

  • エクセルのVBAでオブジェクトの配列変数は使えますか?

    VBですとオブジェクトの配列変数というか、コピーしたときに自動的に配列になってしまいますが、エクセルのVBAの場合でオブジェクトの配列変数は使えますか? なにをしたいかというと、ボタンが多すぎて一つ一つにプログラム定義は面倒、そこで配列にしてまわすことにしたいのですが、エクセルで可能でしょうか。 どなたかお願いします。

  • array()の中に変数の値(テキスト)を入れたい

    いつもお世話になっております。 PHP5.3で、 $number = '1,2,3,4'; という文字列の値が入った変数があり、この変数を"array()"の()の中に呼び出したいのですが定義の仕方が分かりません。 イメージとしてはarray($number)のような感じで、array(1,2,3,4)という配列を定義したいです。 (勿論↑では動きませんでした;) ご教授宜しくお願い致します。

    • ベストアンサー
    • PHP
  • char型のポインタ配列に変数の値の代入できる?

    c言語でchar型のポインタ配列に変数の値を代入できるのでしょうか? 例えば int A[10]={1,2,3,4,5,6,7,8,9,10}; char *C[10]; のCに配列Aの中のデータを文字列として入れたいのです。 C[0]="A[0]"としてもA[0]という文字列が代入されてしまうだけなので… よろしくお願いします。

  • 配列にすると変数が入らない

    お世話になっています MS Excel2003のVBAで質問です find関数の結果を オブジェクト型変数だと入るのに、オブジェクト型配列だと入らない、 そういう仕様なんでしょうか? 成功 Dim result As Object Set result = wb2.Worksheets(1).Range(Cells(2, num), Cells(500, num)).Find(key) 実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです Dim result(10) As Object '検索結果 Set result(0) = wb.Worksheets(1).Range(Cells(i, num), Cells(500, num)).Find(key)

  • 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ステートメントはオブジェクトモジュールのパブリックメンバとしては使用できません。」 と表示されたのですが、僕はまったくの初心者なので ヘルプを見てもどのように修正すればいいのか良く分かりません。 何か知っている方がいらしゃいましたら教えてください。よろしくお願いします。

  • 変数名を配列として利用するには?

    複数のモジュールに記述されている配列を1つの配列へ代入したいと思っています。 単純に考えれば、 @array = (@Module1::array, @Module2::array, @Module3::array); で良いのですが、モジュールが多岐に渡っており、モジュール名自体はスカラー変数へ代入して置き、それを利用したいと考えています。 @array = (); foreach $m (qw(Module1 Module2 Module3)) { $mn = $m. '::array'; foreach $w (@{$mn}) { # @Module1::array にアクセスしているつもり push(@array, $w); } } この様なイメージです。 しかし、@{$mn}は Can't use string ("変数名") as an ARRAY ref while "strict refs" in use at 行番号. になってしまいます。 スカラー文字列に入っている配列変数へアクセスするにはどう記述すれば良いでしょうか?

    • ベストアンサー
    • Perl
受精率80%、着床率20%って本当?
このQ&Aのポイント
  • 受精率80%、着床率20%の情報は本当です。最も妊娠しやすい年齢でも妊娠率は30〜40%ほどしかないとされます。
  • 着床率が低い理由はまだ明確に解明されていませんが、子宮壁と受精卵の相性やその他の要素が関与している可能性があります。
  • 体外受精でも受精した卵子を戻しても妊娠するとは限りません。着床には子宮壁との相性が重要な役割を果たすと考えられています。
回答を見る