• ベストアンサー

アクセス コントロール名が変わった

テキストボックスのコントロール名は「2013年」なのに、 そのコントロールをダブルクリックしてイベントプロシージャーを作ったら Private Sub Ctl2013年_DblClick(Cancel As Integer) End Sub になったのですが、なぜCtlが付いてしまったのでしょうか? 「2013年」というコントロール名はやめたほうがいいですか?

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

数値で始まるプロシージャ名を付けられない仕様みたいなので、数値で始まるコントロール名のプロシージャにはCtlをつけるみたいですね。 http://support.microsoft.com/kb/156198/ja

magqzraimat
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

No1の補足です。 > 「2013年」というコントロール名はやめたほうがいいですか? 以下のような事例もあるようですので、とりあえず最初の文字は数値以外が無難だと思われます。 http://blogs.yahoo.co.jp/tksoft/9756551.html

magqzraimat
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • ACCESS VBA 判定に利用できる情報について

    下のようなテストプログラムを作ってみました。 サブルーチン chgcolorの中で、どちらの上位ルーチンからコールされたか で処理を切り替えたいと考えています。上位ルーチンからの引数を増やす ことなく、判定する方法はないものでしょうか。  アドバイスお願いします。 Private Sub txt1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call chgcolor(Me.txt1) End Sub  : Private Sub txt1_DblClick(Cancel As Integer) Call chgcolor(Me.txt1) End Sub  : Sub chgcolor(a As Control) ◇txt1_MouseDownからコールされた場合(またはクリックイベントの場合) →a.BackColor = CLng("&HFF00FF") ◇txt1_DblClickからコールされた場合(またはダブルクリックイベントの場合) →a.BackColor = CLng("&HFFFFFF") End Sub

  • リストのダブルクリックイベントをフォーム起動時に発

    アクセス2010です。 Private Sub Form_Load() Call lst_test_DblClick End Sub Private Sub lst_test_DblClick(Cancel As Integer) MsgBox "" End Sub このような事は出来ないのでしょうか? リストのダブルクリックイベントをフォーム起動時に発動したいのですが このコードを書くと Call lst_test_DblClick の部分で引数を省略できません。 になります。 どちらもフォームモジュールに書いています。

  • Access のレポート上のコントロールに、VBAで値を設定できる?

    こんにちわ Access のレポート上にテキストボックスが有ります。 レポート印刷時の Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) End Sub プロシージャー内で、上記テキストボックスに任意の文字列を設定する事は可能でしょうか? 以前 Access VBAでアプリケーション開発していた時には、出来たような気がするのですが.... これって出来ないのでしたっけ?

  • アクセス2003でカレンダーコントロールを挿入し、フォームの開くときイ

    アクセス2003でカレンダーコントロールを挿入し、フォームの開くときイベントに、 Private Sub Form_Open(Cancel As Integer) Me.Calendar7.Visible = True Me.Calendar7.Value = Date End Sub と記述しても、当日の日付が表示されません。 原因がわからないのでどなたか教えてください。

  • コントロールに触れたら使用可能にしたい

    通常は「使用可能」を「いいえ」にして、テキストボックスにカーソルが振れたら、使用可能を「はい」にしたいのですが Private Sub ID_Enter() Me.ActiveControl.Enabled = True End Sub Private Sub ID_GotFocus() Me.ActiveControl.Enabled = True End Sub Private Sub ID_LostFocus() Me.ActiveControl.Enabled = True End Sub Private Sub ID_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.ActiveControl.Enabled = True End Sub どれもクリックしないと動作しないようなのですが、このような場合、どのイベントを使えばいいのでしょうか?

  • VB6コントロール配列をパラメータとして渡す方法

    フォーム上にcmdStartというコマンドボタンが3個あります。それをクリックすると使用不可になるというプロシージャーですが、(1)のイベントに対して、(2)で処理する場合、下のようにやると、型がちがうといってエラーになります。 この場合、コントロールの配列を次のモジュールに渡すにはどのように書いたらいいのでしょうか? (1) Private Sub cmdStart_Click(Index As Integer) processGet cmdStart() End Sub (2) Public Sub processGet(pcmdStart() As Control) Dim i As Integer For i = 0 to 2 pcmdStart(i).Enabled=False Next i End Sub

  • テキストの文字列を全て選択状態にしたい

    アクセス2003です。よろしくお願い致します。 テキストをダブルクリックすると そのテキストの文字列を全て選択状態にしたいのですが どうすればいいでしょうか? Private Sub テキスト0_DblClick(Cancel As Integer) End Sub の中に何を入れればいいのかわかりません。 イメージとしては画像のような感じです。 よろしくお願い致します。

  • アクセス レポート バックカラーの変更方法

    現在レポートで1行ごとにバックカラーを変えて印刷しておりますが、それをチェックボックスにチェックがはいった行だけをカラーにするよう変更したいと考えておりますが、よくわかりません。現在のコードをコピーしました。お手数ですがご指導願います。 Option Compare Database Dim bline As Integer Private Sub Report_Open(Cancel As Integer) End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) bline = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) bline = bline + 1 If bline Mod 2 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12663225 End If End Sub

  • ByVal Cancel As MSForms.R

    (ByVal Cancel As MSForms.ReturnBoolean)の意味を教えてください。 エクセルのユーザーフォームで、 クリックした場合は、フォームモジュールに Private Sub UserForm_Click() End Sub のひな形が出来て、 ダブルクリックした時は Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) End Sub が出来上がります。 なぜ、DblClickの時はカッコの中に色々入るのでしょうか? それにByValは値渡しの時に使う言葉ですよね? DblClickの時は、何かの値を渡しているのですか?

  • もしフォームヘッダーにコントロールがあるのなら

    アクセスのフォームの、フォームヘッダーに検索用テキストボックスとコンボボックスがあり、 詳細エリアにレコードソース(コントロールソース)に紐付いたテキストボックスが複数あります。 フォームヘッダーのフィルタを解除するコマンドを実行して、 フォームヘッダーのテキストボックスとコンボボックスをnullにしたいのですが、 vbaで「もしフォームヘッダーなら」ってするにはどうすればいいでしょうか? フォームヘッダーのコントロール名も詳細エリアのコントロール名も 区別のないコントロール名でなのでコントロール名で条件分岐をすることは不可能です。 Private Sub フィルタを解除コマンド_Click() Dim ctl As Control For Each ctl In Me.Controls If (ctl.ControlType = acTextBox) Or (ctl.ControlType = acComboBox) Then 'ここで、もしフォームヘッダーにコントロールがあるのならってしたい Me.Controls(ctl.Name) = Null End If Next ctl Me.Form.FilterOn = False End Sub このコードに付け加えてくれませんか? Debug.Print ctl.Name でコントロール名を取得するとフォームヘッダーも詳細もどちらのコントロール名も取得されてしまいます。 On Error Resume Next 以外でお願いします。

専門家に質問してみよう