全てのコマンドボタンの名前を変更したい
先日質問した「オブジェクト(コントロール)の名前を変更したい」
http://okwave.jp/qa/q7896863.html?by=datetime&order=DESC
の応用で、
前回はDexMachina様にご回答いただいて解決したのですが今度は違う部分で詰みました。
フォームに乗っかっているコマンドボタンの名前を変更しつつ、
インデックスを付けていこうと思うのですが
**************************************
Sub オブジェクト名変更()
Dim ctl As Control
Dim i As Long
Dim f As String
f = "フォーム1"
i = 1
DoCmd.OpenForm f, acDesign 'デザインビューで開く
For Each ctl In Forms(f).Controls
If ctl.ControlType = acCommandButton Then
Forms(f)!Controls(ctl.Name).Caption = i
Forms(f)!Controls(ctl.Name).Name = i
End If
Next ctl
DoCmd.Close acForm, "フォーム1", acSaveYes '保存する
End Sub
**************************************
のControls(ctl.Name).でエラーになります。
エラー内容は
実行時エラー2465
指定した式で参照されている’ Controls’フィールドが見つかりません。
です。
イミディエイトで?ctl.Nameして見ると
コマンド0となるので問題ないと思うのですが文法がおかしいのでしょうか?
Forms(f)!コマンド0.Caption
にすると問題なく動作します。
ご回答よろしくお願いします。
お礼
色設定できました♪ありがとうございました。 Styleプロパティは気づかなかったです・・・。