
VBAです。アクセスです。
Sub test2()
Dim obj As AccessObject
Dim f As Form
For Each obj In CurrentProject.AllForms
Set f = obj.Name
Debug.Print f.Name
色々操作するコード
Next
End Sub
このコードがうまく行かない理由がわからないのです。
Set f = obj.Nameの.Nameで、
「型が一致しません。」のエラーになります。
しかし、Set f = objにすると、
実行時エラー13になります。
オブジェクト型の変数にsetでフォームの名前を入れて、
その後いろいろ操作させるにはどのようにすればよろしいでしょうか?
No.1ベストアンサー
- 回答日時:
ちょっといじってみました。
Set f = obj.Nameでは、オブジェクトに文字列を代入しようとしていますね。
Set f = Forms(obj.Name)なら良いと思いましたが、フォームが開いていないとエラーになりますのでisloadedで判別する必要があります。(これが実行時エラーの原因かも)
であれば、test2()の方は開いているフォームしか対象にならない様なので同じ事かなとも思いました。
ただ、何をなさりたいか分かりませんが、先日別件で調べて知ったばかりですが、フォームのプロパティの操作はデザインモードで開かないと(非表示でも可)出来ない様ですのでご参考までに。
Sub test()
Dim obj As AccessObject
Dim f As Form
For Each obj In CurrentProject.AllForms
If obj.IsLoaded Then
'開いていないとエラーになる
Set f = Forms(obj.Name)
'色々操作するコード
End If
Next
End Sub
Sub test2()
Dim f As Access.Form
For Each f In Access.Forms
'色々操作するコード
Debug.Print f.Name
Next
End Sub
No.3
- 回答日時:
>Dim f As Form
とした場合、f はオブジェクト型の変数ではありません。
オブジェクト型の変数として使用するのであれば
Dim obj As AccessObject
Dim f As Object
For Each obj In CurrentProject.AllForms
Set f = obj
Debug.Print f.Name
色々操作するコード
Next
とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
Excel VBA 全部のUserForm名
その他(Microsoft Office)
-
5
フォーム上の現在アクティブなコントロールの取得
Access(アクセス)
-
6
UserForm1.Showでエラーになります。
工学
-
7
MSFormsとは何ですか?
XML
-
8
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
9
ユーザーフォームで動的(Me.Controls.Add)に作成したコントロールの削除
Visual Basic(VBA)
-
10
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
11
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
ExcelVBAのコントロールの種類の取得方法
Visual Basic(VBA)
-
14
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
15
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
16
どこにもフォーカスを当てたくない
Access(アクセス)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
VBA。複数のChangeイベントをまとめる方法
Visual Basic(VBA)
-
19
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
20
ListView 項目の選択/選択解除について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
mailstorehomeのエクスポートで...
-
お助けください!VBAのファイル...
-
グラフを表示するとき「’~’メソ...
-
Excel vbaについての質問
-
ASPでこんなエラーが出たんです...
-
VBAのリストボックスで、横スク...
-
バッチファイルで、あるスクリ...
-
エクセル 足し算引き算で 空...
-
日付書式のString型からData型...
-
エクセル関数式=ABSで#VALUE!...
-
On ErrorでエラーNoが0
-
【Access】Excelインポート時に...
-
ExcelVBAで「SubまたはFunction...
-
「実行時エラー '3167' レコー...
-
ACCESS VBAのSplit()関数の使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
On ErrorでエラーNoが0
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
マクロで"#N/A"のエラー行を削...
-
VBAのリストボックスで、横スク...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
Filter関数を用いた結果、何も...
-
文字列内で括弧を使うには
-
【VB.NET】 パワポ操作を非表示で
-
レコード登録時に「演算子があ...
おすすめ情報