• ベストアンサー

VBAでユーザーフォームに引数を渡したい

標準モジュールからユーザーフォームに引数を渡し、フォーム上で表示させたいのですが、方法がわかりません。 可能でしょうか?教えてください。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.1

Excel の話でしょうか? Excel は操作したことがない門外漢です。 そこで、強引に次のような手法を用いてみました。 標準モジュールからも同じ手法を使えると思います。 広域変数を使うという手もありますが、それでは、面白くありませんので・・・。 Private Sub CommandButton1_Click()   UserForm1.Controls("TextBox1") = "AAAA"   UserForm1.Show End Sub

関連するQ&A

  • Excel2003 VBAでフォーム渡し

    Excel2003 VBAのフォームを標準モジュールに渡してコントロールできますか? フォームのコードから、標準モジュールにフォームを引数で渡して、操作したいと思っています。 フォームの操作で同じ処理が発生するので、標準モジュールで共通に使いたいのですが、思い通りにいきません。 ネットで調べたりしましたが、解決できずにこちらに質問させて頂きました。 よい方法をご存知の方がいらっしゃましたら、ご教授ください。 よろしくお願い致します。

  • クラスの関数へユーザー定義型の引数を渡す(VB6.0)

    お世話になります。 クラスモジュール内へ宣言した関数へユーザー定義型(標準モジュール内でPublicで宣言)の引数を渡すとコンパイルエラーとなってしまいます。 ユーザー定義型を宣言した以外の標準モジュールでは同じ関数は動きますが、Formモジュールでは動きません。 標準モジュールにしかユーザー定義型の引数を渡すことは出来ないのでしょうか??

  • EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作り

    EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作りました。そのワークシート上での定数や、プロシージャや関数をワークシートのモジュールに置いています。そして、その定数や関数などをユーザーフォームのイニシャライズなどで使いたいと思いますが、ユーザーフォームのモジュールはワークシートのモジュールとは別なので、使えません。他への影響を考えると、標準モジュールには、置くのは不適切だと思います。 特定のワークシート上でのみ使うユーザーフォームと、そのワークシートとで、共通の定数や関数などを使う方法は、あるのでしょうか。どのようにすればよいのでしょうか。

  • EXCEL VBAのユーザーフォームに引数を渡す方法について

    すいません、EXCEL VBAのユーザーフォームに引数を渡す方法についてご質問があります。 シート上にコマンドボタンを2つ用意する。 コマンドボタン1を押すと変数mは1 コマンドボタン2を押すと変数mは2 としてユーザーフォームを呼び出す。 Public m As Integer Private Sub CommandButton1_Click()  m = 1  Call フォーム呼び出し(m) End Sub Private Sub CommandButton2_Click()  m = 2  Call フォーム呼び出し(m) End Sub Sub フォーム呼び出し(m As Integer)  UserForm1.Show End Sub 次にユーザフォームにコマンドボタンを1個置き、 ボタンを押したとき、mが1であれば「ボタン1」 mが2であれば「ボタン2」 とメッセージボックスを出し、ユーザーフォームを閉じる。 Private Sub CommandButton1_Click()   If m = 1 Then    MsgBox "ボタン2"   ElseIf m = 2 Then    MsgBox "ボタン2"   End If  Unload UserForm1 End Sub プロシージャ間の引数渡しは色々なテキストに載っているのですが ユーザーフォームに引数を渡す方法はどうも見つからず、 Private Sub CommandButton1_Click(m) としても、コンパイルエラーとなってしまいます。 よろしくご教示をお願いいたします。

  • ユーザーフォームから

    お世話になります。 ユーザーフォームにて、 オプションボタンでどれかを選択出来るようにし、 コマンドボタンで決定する様にしてあります。 選択した内容によりcallで別の標準モジュールに あるsubプロシージャに飛ばしたいのですが、 その記述方法が分かりません。 良くByvalの記述方法は見つかるのですが、 単純にsubプロシージャを実行したいだけなのです。 フォームの中に記述しても良いのですが、結構長くなって しまうので・・。 こういうやり方はおかしいのでしょうか。

  • VBAでのユーザーフォームについて。

    初めまして。 今VBAのユーザーフォームでアンケートっぽいものつくってます。 最終的に結果ページをユーザーフォームにて表示させるのですが、 その結果ページのユーザーフォームを画像として保存したいのですが 方法がさっぱりわかりません。 (PrtScを押せばできるのですが処理で行いたいのです。。。) 以上よろしくお願いします。

  • VBAのユーザーフォームを実行しようとすると…。

    オブジェクトがありません、とのエラーメッセージが出て、実行できません。 標準モジュールには以下のようなプロシージャを記述しているのですが、デバッグしてみると、2行目の「○○○.Show」の部分が黄色く反転しているのです。 しかし、○○○の名前をつけたユーザーフォームは存在するのです。オブジェクトがない、とのエラーメッセージが出る理由がわかりません。 どなたか解決方法を教えていただけませんでしょうか。 Public Sub Form_Show() ○○○.Show End Sub

  • ユーザーフォームに最小化・最大化ボタンを付ける

    http://www.serpress.co.jp/excel/vba047.html を参考にエクセルのユーザーフォームに 最小化、最大化ボタンを付けたいのですがうまく出来ません。 バージョンは2003です。 リンク先の「作成するモジュール」の中身を標準モジュールにコピペしたら 「vbModeless」が「プロシージャの外では無効です。」になります。 なので、全てをフォームモジュールに貼り付けると Public Constがエラーになるので Public Constだけ標準モジュールに貼り付けました。 でもフォームモジュールでも 「vbModeless」 が「プロシージャの外では無効です。」になります。 なにを標準モジュールにはりつけて 何をフォームモジュールにはりつければいいか教えてください。

  • ExcelのVBA。public変数の値が消える

    VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。 また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

  • VBAのユーザーフォームについて

    ユーザーフォームのコマンドボタンのリストの イニシャルにWorkSheetの全てのシート名を入れるにはどうしたらいいのでしょうか? 戻り値や引数でデータの受け渡しで行うにはどうしたらいいのでしょうか? 初心者でよくその受け渡しがわかりません。 どうぞご教授よろしくお願いします。

専門家に質問してみよう