• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AllowDesignChanges制御できない)

VBAで制御できない理由は?

このQ&Aのポイント
  • AllowDesignChanges制御できない理由を解説します。
  • AccessのフォームでAllowDesignChangesの制御を試みるとエラーが発生します。
  • AllowDesignChangesはVBAでは操作できないため、エラーが発生するのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

AllowDesignChanges について知らなかったので見てみました。 Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False 'デザイン変更の許可をしない End Sub ↑これは自分自身を変更しようとしているのでエラーになってるかと。 標準モジュール・他のフォーム・イミディエイトウィンドウからなら 変更が出来ます。 イミディエイトウィンドウからは フォーム 仮に名前を FM とすると これをフォームビューで開いておいてから ?forms!FM.AllowDesignChanges でTrue/False の確認が出来ます。 変更するには デザインビューで開いてから Docmd.Openform "FM" , Acdesign forms!FM.AllowDesignChanges = false のようにすれば可 なお、False にしてもデザインの変更は出来てしまいます? (・・? 何が変更になったのか・・というと フォームビューの時にプロパティシートが出て来なくなって その意味で変更不可になるようです。(他にも有るかもしれません) また、Access2010 では 非表示になって使用が出来なくなりました。 新たに加わったレイアウトビューでやってくれ・・ということの様です。 以下ヘルプより抜粋 Microsoft Office XP (2002) と比較した Microsoft Access 2010 オブジェクト モデルの変更点の要約を次に示します。 メモ 以下の表では、オブジェクト モデルのメンバーの状態が次のように表記されています。 非表示 メンバーは非推奨となっており、コードでの使用はお勧めできません。 削除 メンバーはオブジェクト モデルから削除されました。 変更 メンバーの構文が変更されています。 Form プロパティ 状態 AllowDesignChanges 非表示

AEBYPYG
質問者

お礼

イミディエイトウインドウでも出来るのですか。 バージョンによって変わってくるようですね。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.1

> という事は、VBAで操作できるって事ですよね? > それなのになぜエラーになるのでしょうか? フォームをデザインビューで開けば可能、ということです。  DoCmd.OpenForm "フォーム1", acDesign  With Forms("フォーム1")   .AllowDesignChanges = False   ' その他の設定   ' ・・・  End With もちろん、現在フォームビューで開かれているフォームのコードで フォームをデザインビューで開き直して 自分を変更することはは不可能です。

AEBYPYG
質問者

お礼

出来ました。 >現在フォームビューで開かれているフォームのコードで Form_Openではできませんでした。

関連するQ&A