VBAを使用してフォームのデザイン変更の許可を設定できないエラー

このQ&Aのポイント
  • フォームを開いた時にVBAでデザイン変更の許可の設定ができないエラーが発生します。
  • Form_OpenイベントでMe.AllowDesignChanges = Falseと設定すると、実行時エラー '2448'が発生します。
  • 標準モジュールでもForm_フォーム1.AllowDesignChanges = Falseと設定しても同様のエラーが発生します。
回答を見る
  • ベストアンサー

フォームを開いた時にVBAでデザイン変更の許可の設

フォームを開いた時にVBAでデザイン変更の許可の設定が出来ない(access2003) デザインビューで手作業で操作するのではなく VBAで値を設定したいのですが Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False End Sub をすると ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・  実行時エラー '2448':  このオブジェクトに値を代入することはできません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ と言うエラーが出てしまいます。 標準モジュールで Sub test() Form_フォーム1.AllowDesignChanges = False End Sub としても同じエラーが出ます。 フォームのデザイン変更の許可は デザインビューで手作業で操作するしかないのでしょうか?

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

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

正直、Accessはよく分からないですが・・・ デザインビューでしか設定できないパラメータじゃないかな。まず非表示のデザインビューで開いて->設定->表示ONにするという手順ではダメです?  DoCmd.OpenForm "フォーム1", acDesign, , , , acHidden  Forms("フォーム1").AllowDesignChanges = False  DoCmd.OpenForm "フォーム1"

lkhjlkhjlk
質問者

お礼

サンプルコードで出来ました! ありがとうございました。

関連するQ&A

  • AllowDesignChanges制御できない

    AllowDesignChangesがVBAで制御できない理由は? アクセスのフォームで、 Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False 'デザイン変更の許可をしない End Sub を実行すると、 実行時エラー"2448" このオブジェクトに値を代入することができません。 になります。 でもAllowDesignChangesのヘルプを見ると、 「"AllowDesignChanges/デザイン変更の許可" プロパティは、 フォームのプロパティ シートまたは Visual Basic を使って設定できます。」 と書いてあります。 という事は、VBAで操作できるって事ですよね? それなのになぜエラーになるのでしょうか?

  • vbaで帳票フォームで開きたい アクセス

    vbaでフォームを開くときに 既定のビューを指定してるのですが 指定したとおりになりません。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム End Sub としてもデータシートビューで開かれてしまいます。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム MsgBox Me.DefaultView End Sub とすると、1が返るのに やっぱりデータシートビューになってしまいます。 なぜでしょうか? エラーにもなりません。

  • Access VBAによるフォームの色変更。

    個人での捜索に行き詰ってしまいましたので、ご相談させていただきます。 ○使用環境 WindowsXP Access2007 VBAで色変更する、Accessのフォームについて質問させていただきます。 下記の記述で「フォーム名」というフォームをボタンで開こうとしています。 Private Sub コマンド2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "12349952" End Sub Private Sub コマンド3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "1643706" End Sub その際、ボタンによって背景色を変更して表示しようとしています。 デザインビューで「フォーム名」のプロパティを変更した直後はボタンの操作で背景色が変わりますが、 一度、「フォーム名」をクローズして、再度ボタンの操作でオープン するときには反映されなくなっています。 もしかしたら、自身の方で何か見落としがあるかもしれませんが、同様の事象をご存知の方がおられましたら、ご指南いただきたいです。 宜しくお願い致します。

  • VBAにてフォームコントロールの変更

    VBAでフォームコントロールのチェックボックスのON・OFFを変更することは可能でしょうか。 具体的にはA.xlsmのマクロを実行して、 A.xlsmのセルA1が0ならB.xlsの"チェック 1"がOFF状態に。1ならON状態になる。 以上のような仕組みを作りたいです。 (フォームコントロールなのは様式(B.xls)がフォームコントールで作成されており、変更不可のため) ですが、同じシート内でもチェックボックスのON・OFFができずに挫折しそうです。 まずは同一シート内で作ってみようと思い下記コードを作成したのですが、 ”SubまたはFunctionが定義されていません”となってしまいます。 Public Sub test() If Range("A1") = 0 Then CheckBoxes("チェック 1").Value = False ElseIf Range("A1") = 1 Then CheckBoxes("チェック 1").Value = True Else MsgBox "無効な値が設定されています" End If End Sub エラーは”CheckBoxes”のところで出てしまいます。 どなたかご教授ねがいます。

  • フォームのデータシートビューにてVBAで直接記述したSQL文を実行した結果を返すことは不可能でしょうか?

    リストボックス、コンボボックスなら Private Sub Form_Open(Cancel As Integer) With Form_フォーム1.リスト2 .RowSourceType = "Table/Query" .RowSource = "SELECT テーブル.フィールド, FROM テーブル" End With End Sub で結果を返すことは可能なのですが フォームをデータシートとして Private Sub Form_Load() Me.RowSourceType = "Table/Query" Me.RowSource = "SELECT テーブル.フィールド, FROM テーブル" End Sub とするのは不可能ですか? これを実行すると 「コンパイルエラー メソッドまたはメンバーが見つかりません」 となり、 「RowSourceType =」が選択されます。 そしてVBAの停止の意の四角ボタンを押すとユーザーフォームが図のようになります。 私のやりたいことは、クエリではなくVBAでSQL文を書き、データシートビューで表示させたいのですがやはり不可能でしょうか? (変数を代入できるため) 何でもいいのでご教授よろしくお願いします。

  • VBAのフォームでTextBoxがいっぱいある時

    Microsoft Excel 2000 for VBAのフォーム機能を使用して TextBox?に値が入力したらシートの指定したセルへ値が入るようにしたいんですが、 TextBoxがいっぱいあるため、以下のように非常に長いプログラムになってしまいました。 Private Sub TextBox1_Change() Sheets(sheetname).Cells(1, 横位置).Value = TextBox1.Value End Sub TextBox2~29は繰り返し Private Sub TextBox30_Change() Sheets(sheetname).Cells(30, 横位置).Value = TextBox30.Value End Sub 上手く配列化なんかでまとめる方法がありましたらアドバイスください。

  • ExcelのVBAでフォームが表示されない

    Sub フォーム起動() UserForm1.Show End Sub 上記の内容をModule1にしてショートカットキーをを設定し、いつでも他に作ってあるユーザーフォームが起動するようにしていました。しかし先日、久しぶりに使ってみようと、設定したショートカットキーを押したら、VBAもマクロも全くいじっていないにも関わらず、「UserForm1.Show」の部分で「実行時エラー'380': Valueプロパティを設定できません。プロパティの値が無効です。」とエラーが表示されフォームが起動できません。これはいったい何が原因なのでしょうか。

  • サブフォームのビューを切り替えたい

    親フォーム(フォーム1)にサブフォームとして、 テーブルをソースとするサブフォーム(テーブル1のサブフォーム)を配置しました。 親フォームからサブフォームのビューを変更したいのですが どうすればいいか教えてください。 親フォームのコマンドボタンにはそれぞれ Private Sub 単票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 1 '帳票フォーム End Sub Private Sub 帳票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 0 '単票フォーム End Sub としたのですが、 実行すると 実行時エラー 2136 "このプロパティを設定するには、フォームまたはレポートをデザインビューで開きます"。 となってしまいます。 Private Sub 帳票フォームへ切り替え_Click() DoCmd.SelectObject acForm, "テーブル1のサブフォーム" DoCmd.RunCommand acCmdFormView End Sub にしたところ、 実行時エラー 2489 “オブジェクト テーブル1が開いていません、” になります。 サブフォームに埋め込んでいて親フォームを開いていても 開いてない事になるのですね。 フォームビューの時に、切り替える事は不可能なのでしょうか? 帳票ビュー表示用フォーム、 単票ビュー表示用フォーム を作るしかないのでしょうか?

  • VBA ユーザーフォーム

    こんばんわ。 VBA、ユーザーフォームで、ListBoxか、Comboboxで、セルの値を参照し、そこから1つ選択するようにするにはどういうコードがりますか? Private Sub Userform_Initialize   Listbox1.AddItem "700" Listbox1.AddItem "701"   ・・・・・   ・・・・・   ・・・・・ End Sub と、やると、ListBoxには反映しますが、列が多すぎて、作成するのに手間が掛かる為、例えば、"700" の値に、Sheets(1)のC2から、C500の値を入れるようなコードはありますか? 宜しくお願いします。

  • ワークシート上のセルの値を変更したらVBAを実行させる。

    Excelでシートの任意の箇所(FORM)を変更したらVBAを走らせたいのですがやり方がわかりません。 シート上の任意の箇所に「FORM」という名前をつけました。 その中でセルの値を変更したらVBAを走らせるために、以下のテストを作成しました。 ですが、入力したセルの値は消えて、さらに無限ループのようにいくつも値をみて、メッセージボックスも複数表示されます。 実際は無限ループではないので、フリーズはせずかえってくるのですが。 どのように変更したらいいのでしょうか? Private Sub Worksheet_Change(ByVal TARGET As Range) TARGET = Range("FORM") MsgBox Range("条件1") End Sub

専門家に質問してみよう