
No.1ベストアンサー
- 回答日時:
アプリケーションが明記されていないので、Accessと判断して書き込みします。
フォーム上のコマンドボタンに関連付けされているイベントプロシージャはクラスモジュールにあります。
標準モジュール内のプロシージャからクラスモジュール内のイベントプロシージャを呼び出して実行することは出来ません。
(蛇足)
共通で使用したい処理は通常、標準モジュール内に記述しておきます。コマンドボタンをクリックしたらそのイベントプロシージャから共通のプロシージャを呼び出して実行するように工夫します。
開発の開始時に、この辺りを考慮してからはじめると楽ですし分かりやすくもなります。
回答ありがとうございました
アプリはアクセスです申し訳ございません
やっぱりそうですか・・・
実は、他人の作ったファイルでして、レポートを36000枚印刷しないといけないのですが、
3つのフォームの値を参照している関係上、既存のフォームに付けられたボタンをクリックしないと印刷できません。手作業だと36000×4クリックです。
がんばって、標準モジュールで作り直します。
No.4
- 回答日時:
miwaharuさんへ
> フォーム内のVBAということで、Me!などが多用されており、標準モジュールに簡単に転記できない状況なのです。
MeプロパティをCodeContextObjectプロパティにまとめて置換してしまえばよいように思うのですが・・・
Wendy02さんへ
> それは、クラスモジュールではなくて、クラスのことではないでしょうか?
Access2000以降はクラスモジュールは誤りで、フォームモジュールが正しい表現です。お詫びと訂正をいたします。Access97以前はクラスモジュールと呼んでいたような記憶があります。
No.3
- 回答日時:
私の方には反応がなかったのですが、私の文章は分かりにくいのでしょうか?
実際には以下のようなことは、お勧めしないのですが、印刷で、3600 * 4というのは、その前にプリンタ・バッファの問題で、Windowsそのものがハングの危機にさらされることになるので、そこにWait なり、OnTime メソッドを置くなりしなければいけません。
Sub InsteadButton()
Dim i As long
For i = 1 To 3600
Application.Run Sheet1.Shapes("Button 1").OnAction
Next i
End Sub
内容的には、質問外になるかもしれませんが、
>標準モジュール内のプロシージャからクラスモジュール内のイベントプロシージャを呼び出して実行することは出来ません。
それは、クラスモジュールではなくて、クラスのことではないでしょうか?
以下は、フォームのコマンドボタンではなく、コントロールツール側のコマンドボタンですが、クラスモジュールで作ったイベントのインスタンスを、標準モジュールからコマンドボタンに貼り付けるサンプルです。
元のご質問のクリックイベントを繰り返すこと自体は、その中に入れるわけですから、標準モジュールに、ループを作って、元のコードを貼り付けするか、Call で呼び出したほうが懸命だとは思いますが。
'<標準モジュール>
Public myClass As Class1
Sub test()
Set myClass = New Class1
Set myClass.NewBtn = Sheet1.CommandButton1
End Sub
'<Classモジュール>
Private WithEvents myNewBtn As CommandButton
Public Property Set NewBtn(ByVal myBtn As CommandButton)
Set myNewBtn = myBtn
End Property
Private Sub myNewBtn_Click()
MsgBox "ボタンが押されました!"
End Sub
回答ありがとうございます
今、拝見しました。お礼が送れて申し訳ございません
ところで、EXCELの場合の回答をいただいたわけですが、ACCESSでも利用可ということでしょうか?
じつは、フォーム内のVBAばかり利用していて、標準モジュールから、フォーム内のVBAを利用する方法をよく知りません。
ご指摘のとおり、標準モジュールに書き直すことが最善なのはわかるのですが、他人の作った代物であり、フォーム内のVBAということで、Me!などが多用されており、標準モジュールに簡単に転記できない状況なのです。
No.2
- 回答日時:
こんにちは。
>既存のフォームにあるボタンをモジュールからクリック(起動)することは可能でしょうか。
私はExcelの中でということで解釈して、ワークシート上にあるフォームに登録してあるマクロをモジュールから動かすことだとすれば、
Sub InsteadButton()
Application.Run Sheet1.Shapes("Button 1").OnAction
End Sub
ユーザーフォームなどの場合は、
Call プロシージャ名
ということになるかと思います。
また、既存のボタンを利用するのでしたら、一旦、クラスモジュールから、インスタンスを作って、そしてボタンに取り付けてやればよいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VBA ユーザーフォーム 3 2022/04/14 10:30
- Visual Basic(VBA) Excel・ユーザーフォームの情報を受け渡したい 4 2022/06/08 10:11
- Excel(エクセル) VBAで、㉑という数値が、正しく、入力できない 2 2022/07/26 20:22
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
-
4
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
5
Access VBA標準モジュールについてです。
Access(アクセス)
-
6
Excel vbaで別ブックのコマンドボタンをクリック
Visual Basic(VBA)
-
7
vba userFormのSubを標準モジュールから呼び出す方法を教えてください
Visual Basic(VBA)
-
8
VBAです。ユーザーフォームの表示させ、標準モジュールを読み込ませる方法について
Visual Basic(VBA)
-
9
プロシージャからイベントをコールする
Visual Basic(VBA)
-
10
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
13
エクセルVBAからアクセスフォームについて
Access(アクセス)
-
14
access テキストボックスの値取得
Access(アクセス)
-
15
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
16
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
17
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
18
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
19
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
20
IIF関数の使い方
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
モジュールからフォームのボタ...
-
モジュールとは何ですか
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAでリンク切れをチェッ...
-
サーバーサイドでPerlをそのま...
-
Excel VBA 『Call』で呼び出す...
-
レンタルサーバーでのモジュー...
-
レンタルサーバーのPHPの利用の...
-
VBAで別モジュールへの変数の受...
-
acwzlibとは?
-
Form間の値の渡し方
-
ユーザーフォーム上に表示され...
-
VBA モジュールで共通に使う変...
-
Perlのモジュール呼び出しについて
-
VBでグローバル変数を宣言するには
-
Access VBA標準モジュールにつ...
-
モジュールとクラスの違いって...
-
'Range'メソッドは失敗しました
-
Perlで単純にミリ秒を求めるこ...
-
使用できる関数かどうか調べる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで別モジュールへの変数の受...
-
ユーザー定義関数に#NAME?が返...
-
エクセルVBAでシートモジュール...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBA 定義されたプロージ...
-
VBでグローバル変数を宣言するには
-
vba userFormのSubを標準モジュ...
-
モジュールの最大数はいくつな...
-
【vba】フォームに書いてあ...
-
Excel VBA 『Call』で呼び出す...
-
VBAで旧字体を異字体に一括で変...
-
モジュールとクラスの違いって...
-
モジュールからフォームのボタ...
-
大量の標準モジュールを解放す...
-
acwzlibとは?
-
SendKeysの使い方について
-
標準モジュールを削除したい。(...
-
VBA This Workbookモジュール...
-
VBA モジュールで共通に使う変...
おすすめ情報