
諸事情があり、フォーム上のコマンドボタン40個くらいの名前を変更したいのですが
まず、一つだけ変更できるか実験してみたのですがうまくできません。
Sub オブジェクト名変更()
DoCmd.OpenForm Form_フォーム1.Name, acDesign
Form_フォーム1.コマンド0.Name = "あああ"
DoCmd.Save acForm, Form_フォーム1
End Sub
を実行すると
メモリが不足しています。(Error 7)
と出たり、
実行時エラー 29054
指定のコントロールを追加、名前を変更、または削除することはできません。
と出たりします。
これって無理って事でしょうか?
バージョンは2007です。
No.1ベストアンサー
- 回答日時:
> これって無理って事でしょうか?
当該フォーム以外から実行するのであれば、コントロール名の変更は可能です。
ただ、そのコントロールの各イベントにコードを割り当てていたり、コード上でそれらを
参照していた場合、名前が一致しなくなるため、注意が必要です。
(「Private Sub コマンド0_Click」が呼び出せなくなったり、「コマンド0.SetFocus」が
コンパイルエラーになったり、といった事態になります)
以下のコードを適用する際は、以上の注意事項を踏まえた上で行ってください。
(なお、以下のコードでは、フォームを閉じる際に、確認メッセージなしで変更を保存
させるよう、DoCmd.Closeの第3引数に「acSaveYes」を指定していますので、
併せてご注意下さい)
Public Sub オブジェクト名変更()
DoCmd.OpenForm "フォーム1", acDesign
Forms("フォーム1")!コマンド0.Name = "あああ"
DoCmd.Close acForm, "フォーム1", acSaveYes
End Sub
上記のように、「Form_フォーム1.Name」ではなく、「"フォーム1"」と定数式を
使用すれば、変更が可能になります。
これは、「Form_フォーム1」を参照すると、「フォーム1」が非表示でメモリに
読み込まれる(≒フォームビューで開かれたのに近い状態になる)ためです。
このため、せっかくデザインビューで開く指定をした意味がなくなってしまって
います。
(DoCmd.OpenFormで開くのとは異なり、「Form_フォーム1」の形で参照すると、
同じフォームを同時に複数表示が可能になるため、このようなことが起こります)
詳細については、以前のQ&Aを参照してみてください:
http://oshiete.goo.ne.jp/qa/7888223.html
名前を変更したいコントロールにvbaコードが書いてあったり、
フォーカスが当たる場合は要注意という事ですね。
ん?ん?ん?
いまいちよくわからないのですが
>当該フォーム以外から実行するのであれば、
コントロール名の変更は可能です。
との事ですが、
Forms("フォーム1")!コマンド0.Name = "あああ"
これは、該当フォームから実行してる事にはならないのですか?
と思ったら、
>上記のように、「Form_フォーム1.Name」ではなく、
>「"フォーム1"」と定数式を使用すれば、変更が可能になります。
>これは、「Form_フォーム1」を参照すると、
>「フォーム1」が非表示でメモリに読み込まれる
>(≒フォームビューで開かれたのに近い状態になる)ためです。
との事なのですね。
要するに
Form_フォーム1
と
Forms("フォーム1")
は別物のようですね。
Forms("フォーム1")形式に変えたらうまくできました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
Excelマクロでオプションボタンの名前の変更をしたい
Excel(エクセル)
-
エクセルVBAで、ボタンの文字を変えたい
Excel(エクセル)
-
-
4
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
5
新規レコード行を非表示にしたい
Access(アクセス)
-
6
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
7
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
8
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
9
Microsoft Access 「Form」のボタンの標題を別テーブルから…
Access(アクセス)
-
10
accessVBA 「フォームが見つかりません」
その他(データベース)
-
11
ACCESSフォームにコントロールが追加できない
Access(アクセス)
-
12
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
13
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
14
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
15
コントロールの存在確認
Visual Basic(VBA)
-
16
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
17
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
18
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
19
Excel VBA ワークシートに貼られたボタン名(Caption)をセルの値から取得するには
その他(プログラミング・Web制作)
-
20
Accessの画面更新を一時的に停止する方法。
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ACCESSのフォーム、開くんです...
-
ユーザーフォーム上に現在日時...
-
フォームのテキストボックスな...
-
クリックイベントなのに、2回ク...
-
Form_Load と Form_Activate の...
-
パソコンの画面に合わせてユー...
-
VBAでユーザーフォームを再表示...
-
モーダルフォームとモードレス...
-
(Excel+VBA)ユーザーフォームの...
-
ブックをCloseまたはQuitで閉じ...
-
アクセス2013 フォームが...
-
ユーザーフォームのラベルに時...
-
Excel VBA ユーザーフォーム 複...
-
クリックするたびに、フォーム...
-
【VBAユーザーフォームで閉じる...
-
フォームに引数を渡す方法のやり方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
VBAでユーザーフォームを再表示...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
モーダルフォームとモードレス...
-
フォームウィンドウを最前面に...
-
ユーザーフォーム上に現在日時...
-
ACCESSのフォーム、開くんです...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
VBA(エクセル)のユーザー...
-
Accessで、一つのフォーム画面...
-
Excel VBA ユーザーフォーム 複...
-
コントロールの存在確認
-
VB.NETでフォームロード中のエ...
-
フォームを画面のど真ん中に表...
-
(Excel+VBA)ユーザーフォームの...
おすすめ情報