- ベストアンサー
VBAでコードから新規フォームを作成する際にコードが見えてしまう
- VBAで新規フォームを作成する際に、コードが見えてしまう問題について解決方法を教えてください。
- フォーム作成時にコードが表示される問題を解決する方法を教えてください。
- VBAのコードの一部を抜粋して新規フォームを作成する際に、コードが表示される問題について解決方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- フォームを作成すると同時にイベントを作成する方法は
フォームを作成すると同時にイベントを作成する方法は? アクセスなのですが 標準モジュールで Sub フォームを作成() Dim myForm As Form Set myForm = CreateForm DoCmd.Close acForm, myForm.Name, acSaveYes End Sub をしたと同時に、 そのフォーム内に Private Sub Form_Open(Cancel As Integer) MsgBox "開きました" End Sub のようなイベントを同時に生成するにはどうすればいいでしょうか? クラスモジュールを使うのですか? クラスモジュールの使い方がまったくわからないのですが サンプルコードを頂けないですか?
- ベストアンサー
- オフィス系ソフト
- フォームを作成してフォームビューで表示するには?
Sub Sample01() Dim myForm As Form Set myForm = CreateForm DoCmd.RunCommand acCmdFormView End Sub vbaでフォームを作成し、フォームビューで作成したいのですが これだと何も起きないのですが、表示されるにはどうすればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- vbaでフォームを作成しつつ、指定した名前で保存す
vbaでフォームを作成しつつ、指定した名前で保存するには? Sub フォームを作成する() Dim myBtn As TextBox Dim myForm As Form Set myForm = CreateForm myForm.DefaultView = 1 ' 帳票フォーム DoCmd.Save acForm, "F帳票" End Sub これを実行すると 実行時エラー2489 オブジェクト ’F帳票’が開いていません。 になってしまうのですが、新規でフォームを作り名前を付けて保存する方法はありますか? ご回答よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルでユーザーフォームをvbaで作る
アクセスでフォームをvbaで作る時はCreateFormメソッドで出来ましたが エクセルでユーザーフォームを作る場合はどうすればいいですか? エクセルのオブジェクトブラウザでMSFormsライブラリでCreateで検索しても何もヒットしないことから Createじゃないメソッドで行うと思うのですがどのメソッドでしょうか?
- ベストアンサー
- その他MS Office製品
- VBA
VBEの標準モジュール(例Module1)にVBAのプログラムを書き、 実行した時、ワークシート(例Worksheets(”sheet1”)のウインドウを自動的に開くには(前面に持ってくるには)どのようにコーディングすれば良いのでしょうか。今は実行後確認するため、プロジェクトのSheet1で右クリックして「オブジェクトの表示」でSheet1を出したり、タスクバーをクリックしていますが。まずSheet1を前面に出して処理をしたい。Activate,Select、Showなど試しても効果がありません。
- ベストアンサー
- Visual Basic
- VBAのフォームについて
今、悩んでいるというか、不思議に思っていることがあります。 ACCESS2003 VBAで、VBAコードでメインのフォームから、ある帳票フォームのインスタンスを作成しています。メインフォームのモジュールに以下のように記述し、 Dim 帳票1 as Form で、ボタンのクリックイベントで、 set 帳票1 = New Form_帳票の元フォーム とインスタンスを生成します。更に、この帳票フォームには、同様に子フォームを持っています。こちらも同様に帳票フォームモジュールに、 Dim 詳細1 as Form として、あるボタンのクリックイベントに、 set 詳細1 = New Form_詳細フォーム と、しています。ここで、帳票1の閉じるボタンを押しても、詳細1のフォームは、閉じません。 同様に、帳票の元フォームに Dim 帳票2 as form ボタンクリックで、 Set 帳票2 = New Form_帳票2の元フォーム とします。さらに帳票2の元フォームには、 Dim Child帳票 as Form ボタンクリックで、 Set Child帳票 = New Form_帳票2の元フォーム としています。 これで、Child帳票は、いくつもいくつもインスタンス化されます。そこで、今までの動作に準じて、たくさんあるChild帳票の大元を閉じると、こちらは子フォームが全部閉じます。例えば10個子フォームを作って、途中を閉じるとちゃんとその子だけが閉じます。最初の例の帳票1フォームを閉じても、詳細1フォームが閉じないのと、何が違うのか分かりません。私は、フォームが閉じるときには、そのメンバクラス(フォーム)は、破壊されるものだと思っていたのですが、そうでもないようです。どなたかわかりやすく、教えていただけないでしょうか?
- ベストアンサー
- Visual Basic
- VBAのコードを書くところ(初心者)
今仕事でExcelでVBAを使って物を作っているのですが、コードはどこに書くのが一番よいのでしょうか?。たとえば、本を見ると標準モジュールに書いていっているのですが、自分は今ユーザーフォームでコマンドボタンを作ったりコンボボックスを作って、そのボタンをクリックすると自然とPrivate sub オブジェクト名_Click()と出て、その中に書いているのですが、そうすると標準モジュールに書く必要がなくなってしまう気がするのですが・・・。なので一応標準モジュールに内容を移して、フォームのところで関数として呼び出すようにしたのですが、どのように書くのがよいのでしょう?長々すいませんわかりづらかったら後で補足します。 後、今までCを勉強していたのでオブジェクト?メソッド?プロパティ?の書き方が今ひとつ覚えづらいのは慣れでしょうか?
- ベストアンサー
- Visual Basic
- VBとVBAのコードの違い プロシージャー呼び出し方法
何度かお世話になっておりおります 毎回アドバイスありがとうございます 早速なのですがまた躓いてしまいアドバイスお願いします。 ~質問内容~ 標準モジュールからフォームのプロシージャーを呼び出す エラー内容 オブジェクトが必要である オブジェクト修飾が必要など 出てきました オブジェクト修飾 というのが もう理解出来ず 本当にスタートの時点ではありますが アドバイスお願いします VBのコード 標準モジュール Sub Main() MainForm.Initialize End Sub フォームのコード Public Sub initialize() ”コード内容” End Sub ↑上記で記入しました フォームで宣言されているInitialize を呼び出したいのですが VBでは このままで出来るはずなのですが VBAでは オブジェクト修飾が必要です CALL をつけても エラーのままでした 少し質問がわかりにくくなってしまいましたが 標準モジュールから フォームのプロシージャーを呼び出すには なんと入れれば宜しいでしょうか? アドバイスお願いします
- 締切済み
- Visual Basic
- (Access) VBA イミディエイトの使い方を教えてください。
(1)標準モジュールにある時は、イミディエイトウィンドウにうまく表示されます。しかし、フォームオブジェクトの中に作成したときは、実行しても何も表示されません。なぜなのですか? (実行したコード) Sub test() Dim i, s s = 0 For i = 1 To 10 s = s + i Debug.Print s Next i End Sub 本などを読みましたが、いまいちイミディエイトが、どういう場面で使えるのかよく分りません。 (2)もし、初心者でも参考になるようなサイトなどが有れば、そちらもぜひ教えてください。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- EXCEL VBAモジュール間のデータ受け渡し
ユーザーフォームでセットした値を他のモジュール(Module1など)で参照するにはどうしたらいいでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
お礼
Set myFrm = CreateForm のすぐ下に DoCmd.OpenForm myFrm.Name, acDesign, , , , acHidden とやってみましたが何も変わりませんでした。 確かに一時的にフォームが隠れたかもしれませんがコード(新規フォーム作成コーディング)までは隠れてなかったみたいです。 新規フォームでは不特定多数のコマンドボタンを作成しており、そのコマンドボタン一つ一つにイベント処理コードを埋め込んでいるので、その埋め込んでいる途中経過がどうしても出てしまうんですね。 おそらくラベルだけを貼り付ける新規フォームなら、コードを埋め込む必要は無かったので、ここまで問題にはならなかったと思いますが、今回の場合新規作成フォームのコーディング処理まで埋め込まないといけないことがネックになっていることがわかりました。 フォームが見える見えないの処理方法の問題ではなく、コーディング作成経過処理を見せない方法が本当の問題だということにようやく気づきました。 やはりこれを解決する方法なんてないですよね。 >myMdl.AddFromFile "ファイル名" のファイル名の中にはどの様なコードを記述すればいいんですか?コマンドのクリックイベントみたいなイベントものを入れるんですか?
補足
訂正 Set myFrm = CreateForm DoCmd.Save , "フォーム名" 'の下にデザインビューで開く DoCmd.OpenForm myFrm.Name, acDesign, , , , acHidden Set myMdl = myFrm.Module <これ以下はラベルとコマンドボタンの配置のコード> DoCmd.OpenForm myFrm.Name 'そして最後にフォームビューで開いています。 です。DoCmd.Save , "フォーム名"を入れておかないとフォーム名を自分で決めれないので入れてます。 Set myMdl = myFrm.Module以下のコードは全てファイルに記述できるんでしょうか?