
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(エクセル)
-
MSFormsとは何ですか?
XML
-
-
4
フォーム上の現在アクティブなコントロールの取得
Access(アクセス)
-
5
Access サブフォームでの選択行の取得
その他(データベース)
-
6
ユーザーフォームで動的(Me.Controls.Add)に作成したコントロールの削除
Visual Basic(VBA)
-
7
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
8
Excel VBA 全部のUserForm名
その他(Microsoft Office)
-
9
UserForm1.Showでエラーになります。
工学
-
10
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
11
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
15
VBA。複数のChangeイベントをまとめる方法
Visual Basic(VBA)
-
16
変数をコントロール型で使用する方法
Visual Basic(VBA)
-
17
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
18
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
19
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
20
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VBAエラー】Nextに対するFor...
-
BASP21でメールが送信できない
-
ACCESSで値を代入できないとは?
-
【VB.NET】 パワポ操作を非表示で
-
.VBSだとADODBのプロバイダが見...
-
パソコンを起動するとこのよう...
-
VBA変数をFunction.VLookupの戻...
-
VBAのAdvancedFilterについて ...
-
Findプロパティを取得できません
-
mailstorehomeのエクスポートで...
-
VBA データ(特定値)のある最...
-
PL/SQLでファンクション名に変...
-
フランスの生年月日(jj/mm/aaaa)
-
VBAで時間(00:00形式)を積算...
-
IISの仮想ディレクトリ作成がわ...
-
ステートメントが見つかりません
-
Excel VBA 複数ブックシートご...
-
VB6で構造体(ユーザー定義型)の...
-
SMART情報
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
レコード登録時に「演算子があ...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
ApplicationとWorksheetFunctio...
-
On ErrorでエラーNoが0
-
Excel vbaについての質問
-
ACCESSで値を代入できないとは?
-
VBA データ(特定値)のある最...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
実行時エラー'-2147467259(8000...
おすすめ情報