フォームが50個くらいあるのですが
該当のフォームが存在するかvbaで取得したいのですが
If CurrentProject.AllForms("フォーム1").IsLoaded Then
のように、一発で取得する方法はありますか?
今は
Sub Sample1()
Dim DB As DAO.Database
Dim f As DAO.Document
Set DB = CurrentDb
Dim strForm As String
Dim flg As Boolean
strForm = "Fメインメニュー"
For Each f In DB.Containers!Forms.Documents
If strForm = f.Name Then
flg = True
Exit For
End If
Next
If flg = False Then
MsgBox strForm & "は存在しません"
End If
End Sub
のような感じで、すべてのフォームをループしているのですが
無駄が多い気がします。
改善策があればお願いします。
No.1ベストアンサー
- 回答日時:
おそらくそういった方法でループしてチェックするしかないと思います。
50個というと多いような気がしますが、コンピュータにとっては一瞬の処理ですからそれほど気にしなくてもよいかと思います。
おわかりのことかもしれませんが、その処理を関数化すれば
If CurrentProject.AllForms("フォーム1").IsLoaded Then
と同じように使えますよ。
以下の関数を作る
Public Function ExistsForm(ByVal formName As String) As Boolean
Dim f As Object
For Each f In CurrentProject.AllForms
If f.Name = formName Then
ExistsForm = True
Exit Function
End If
Next
End Function
これを
if ExistsForm("フォーム1") then
のように呼びだせば、フォームの存在をチェックできます。
No.2
- 回答日時:
dcount("*" ,"msysObjects","type = -32768 and name = 'チェックしたいフォーム名'")
では。
http://www.nurs.or.jp/~ppoy/access/access/acQ017 …
↑解説はこちらにて。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
コントロールの存在確認
Visual Basic(VBA)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
フォームの存在をチェックする方法
Visual Basic(VBA)
-
-
4
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
5
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
6
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
7
現在アクティブなタブのページ名を取得したい
Access(アクセス)
-
8
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
ACCESSでコントロールソースの変更
Access(アクセス)
-
11
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
12
コマンドボタンがあるかどうかを取得するには?
PowerPoint(パワーポイント)
-
13
Accessの実行時エラーについて
その他(データベース)
-
14
DATE型変数を初期化する方法
Visual Basic(VBA)
-
15
AccessのFormのみをスクリーンショットでとりたい
その他(データベース)
-
16
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
17
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
18
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
19
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
20
access2010 コマンドまたはアクション''は無効です。について
その他(ソフトウェア)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストボックスの選択解除
-
VB.net(VB)で、フォームにExcel...
-
Access 無操作の場合、自動で閉...
-
Access2010で動的コントロール...
-
VBAにてメッセージボックスを最...
-
accessで2つ以上のフォームを起...
-
フォームを1つだけ閉じる方法は?
-
ExcelVBAでフォーム内でブック...
-
WithEvents変数について
-
PDFフォームに本日の日付を自動...
-
PDFフォーム内で日付計算したい...
-
アクセスVBA フォームのス...
-
アクセス フォームが存在する...
-
フォームの左上のアイコンだけ...
-
ユーザーフォーム上にアイコン...
-
ボタン押下でサブフォームのレ...
-
サブフォームの新規レコードに...
-
VB.NET 親フォームから子フォー...
-
ACCESS フォーム、クエリの最前...
-
ASP.NETとC#でWebフォームを呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAにてメッセージボックスを最...
-
VB.net(VB)で、フォームにExcel...
-
Accessでフォームから別フォー...
-
リストボックスの選択解除
-
Googleフォーム・複数人の申し...
-
ユーザーフォーム上にアイコン...
-
アクセスVBA フォームのス...
-
VBプログラムの終了
-
アクセス フォームが存在する...
-
サブフォームの新規レコードに...
-
サブフォームの行ごとにコンボ...
-
PDFフォームに本日の日付を自動...
-
accessで2つ以上のフォームを起...
-
メッセージボックスの背景色
-
PDFフォーム内で日付計算したい...
-
VBA リストボックスをダブルク...
-
Access 無操作の場合、自動で閉...
-
ディスプレイ解像度より大きな...
-
フォーム上の全てのコントロー...
-
ToolStripStatusLabelを固定し...
おすすめ情報