• 締切済み

Access VBAです

初めまして。 今、AccessVBAを使ってチェックボックス(数十個)にチェックを入れ、最後に終了ボタンを押すと、チェックが入ったボックスの題目を赤く反転させたいのですが、どうすれば良いのですか。Me.○○.Backcolorでは出来なかったので悩んでいます。 例) 今日のご飯  □ハンバーグ □魚 ■しょうが焼き とあった場合、しょうが焼きにチェックが入ってるので、終了ボタンを押すと『今日のご飯』の部分を文字色を変えて警告みたいにしたいのです。 うまく説明が出来なくて申し訳ありません・・・。どうぞよろしくお願いいたします。

みんなの回答

noname#140971
noname#140971
回答No.3

不可能かと思います。 ボックスコントロールを配置し立体表示して背景色を変えれば可能です。 次は、ボックスコントロールを利用したサンプルコードです。 Private Sub Form_Load()   Me.ボックス5.BackColor = RGB(255, 255, 255) End Sub Private Sub コマンド_終了_Click()   If CBool(Me.ボックス5.BackColor = RGB(255, 0, 0)) Then     Me.ラベル_今日のご飯.ForeColor = RGB(0, 255, 0)   End If End Sub Private Sub ボックス5_Click()   Static isCheck As Boolean   isCheck = Not isCheck   Me.ボックス5.BackColor = RGB(255, Abs(255 * Not isCheck), Abs(255 * Not isCheck)) End Sub

回答No.2

チェックボックスの題目の背景スタイルが「透明」になっていませんか?

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

> とあった場合、しょうが焼きにチェックが入ってるので、終了ボタンを押すと『今日のご飯』の部分を文字色を変えて警告みたいにしたいのです。 文字色を変えるなら ForeColor です。 背景色でよろしいのなら、BackColor ですが、 背景スタイルが透明になっていませんか?

関連するQ&A

  • アクセスVBA If式

    早速ですが、質問させて頂きます。 ACCESS VBAで、各ボックスに入力された数字に対し、論理式が立てられており、全項目ボックスに入力をし『チェック』ボタンを押すと基準を超えるものに『再チェックが必要な項目があります』というメッセージを出した上に、それを赤で反転させる、というのを作成中です。 簡単な図で表すと []はボックスだと思ってください 高さ[   ]   横[    ]   縦[    ] 体積[   ]      [チェック]←ボタン 高さが20を超えた場合、要再チェック 横が10以下の場合、要再チェック 縦が5未満又は15を超える場合、要再チェック 体積 高さ*横*縦 が3000以下の場合、要再チェック Private Sub コマンド1_Click() ← チェックボタンをクリック '要チェックか調べます 要チェック = Y If 高さ >= 20 Then Y = Y + 1 End If   If 横 <= 10 Then Y = Y + 1 End If   If 縦 < 5 Then Y = Y + 1 End If If 縦 >= 15 Then Y = Y + 1 End If ~中略 If Y >= 1 Then Msg = MsgBox("要再チェック項目があります。 ", vbOKOnly + vbExclamation, "確認してください") End If If Y = 0 Then Msg = MsgBox("再チェックは必要ありません。 ", vbOKOnly + vbInformation, "確認してください") End If 体積に関しては、式マクロを組んでいます。 以上です。赤に反転させる方法は分かりませんでした・・・。 このように1つずつIf式でやるのは、あまり綺麗じゃないと思いますし、たったこれだけの簡単な式でも、うまく機能してくれません(涙) どうかお助けいただけませんでしょうか。よろしくお願いしたします。

  • Access2000について

    Accessでの質問です。(排他処理について) フォームにとあるテーブル(リンクテーブルを使用 しています)のデータを一覧表示させています。 一覧表示させるテーブルの項目にはチェックボックスの 項目があり、フォーム上でそのチェックボックスを クリックして「削除」ボタンをクリックすると、 チェックがついたものだけをフィルタをかけて 表示させたあとで、モジュール内でそのチェックのついた データを削除する処理をしています。 このフォームを複数ユーザーで使用します。 それぞれのマシンごとにmdbはコピーして使うのですが、 リンクテーブル先は同じです。 (1)のマシンにてフォーム上でチェックボックスにチェックをつけ、「削除」ボタンはクリックしないまま、 そのままにしておいて、 (2)のマシンにて同じデータにチェックを付け、 「削除」ボタンクリックにてそのデータを削除したあと、 (1)のマシンにて「削除」ボタンをクリックすると、 (1)のマシンのmdbが異常終了してしまいます。 どうやら(1)のマシンが削除させようとして フィルターをかける時点で、既に(2)のマシンによって そのデータはテーブルから削除されているので 異常終了しているみたいです。 これを異常終了させないようにするには どうしたらいいのでしょうか? わかりづらい文章になってしまってすみません。 どうかアドバイスを宜しくお願いします。

  • Access2010 イベントが動かない

    超初心者です。言葉の意味も分からない場合がありますので、どうか噛み砕いて教えてくださると助かります。 他の方がAccess2003で作成されたAccessプログラムです。 コンボボックス1 コンボボックス2 コンボボックス3 コンボボックス4 テキスト5 コマンドボタン6 コマンドボタン7 コンボボックス1で選択したものに関連するものが、コンボボックス2で選択できるようになる コンボボックス2で選択したものに関連するものが、コンボボックス3で選択できるようになる コンボボックス3で選択したものに関連するものが、コンボボックス4で選択できるようになる コンボボックス4まで選択をするとテキスト5に選択されたものが表示される。 コマンドボタン6を押すと、コンボボックス1~4、テキスト5がクリアされ、また新しくコンボボックス1から選択できるようになる。 コマンドボタン7を押すとAccessが終了する このように設定されるようです。 Access2003では正常に動いていました。 しかしOffice2010(Access2010?)を導入したために、上記のプログラムの中で、コマンドボタン6,7が動作しません。 コンボボックス1で選択したものに関連するものが、コンボボックス2で選択できるようになる コンボボックス2で選択したものに関連するものが、コンボボックス3で選択できるようになる コンボボックス3で選択したものに関連するものが、コンボボックス4で選択できるようになる コンボボックス4まで選択をするとテキスト5に選択されたものが表示される。 このアクションは問題ありません。正常に動きます。 しかし、 コマンドボタン6を押すと、コンボボックス1~4、テキスト5がクリアされ、また新しくコンボボックス1から選択できるようになる。 コマンドボタン7を押すとAccessが終了する この2つができません。 コマンドボタン6のイベントプロージャでは、 Private Sub コマンド6_Click() Me![コンボボックス1] = "" Me![コンボボックス2] = "" Me![コンボボックス3] = "" Me![コンボボックス4] = "" End Sub と書かれています。 コマンド7はプロパティシートのイベントのタブ、クリック時に「終了」となっており、マクロで動いているようです。 マクロは、クリックするとAccess終了というだけの簡単なマクロです。 <課題・問題> ・コマンドボタン6を押してもコンボボックス1~4、テキスト5が消去(クリア)されない。クリアさせたい。 ・(Access2003で実行したときに)コマンドボタン6を押してコンボボックス1~4、テキスト5を消去(クリア)しても、データを保持しているらしく、 コンボボックス1~2で選択しても、前回選択したコンボボックス2に関連するものが、コンボボックス3に選択肢が出る。正しく抽出されてこない。 ・コマンド7を押してもAccess終了が実行されない   引数’オプション’を指定した場合、’Quit’マクロアクションを無効モードで実行したり、埋め込みマクロから呼び出して実行したりすることはできません。   とエラーになる。(このエラーの意味も分かりません) どうしたら課題をクリアして動く、使えるようになるのでしょうか? 教えてください。 宜しくお願い致します。

  • 一人暮らしの料理

    一人暮らしで料理をつくるんですけど、なにをつくればいいか思いつきません。いろんなサイトや本で探しますがよくわからない料理ばかりで 困っています。メジャーな料理(ハンバーグや炊き込みご飯など)を教えてください。今まで作ったのは、カレー、ハンバーグ、炊き込みご飯、鶏の照り焼き、魚のムニエル、しょうが焼き、野菜炒め、にらタマ ぐらいです。 できれば、魚、豚、鶏のどれかを使った料理を希望します。

  • ACCESS97の帳票フォームで複数コントロールを指定したい

    こんにちは。ACCESS97で帳票フォームを作成し、詳細にチェックボックス(連結コントロール)とテキストボックスを作成しました。フォームフッタ-に「全てチェック」ボタンをつけ、全てのチェックボックスがチェックされるようにしたいのですが、どのようにすればよいのでしょうか。 Me.チェック.value とすると、一番上のレコードしか変わりません。全てのチェックボックスを一括で変えるか、配列になっているのならばループで回して変えたいのですが。 Me.チェック(1).value のように書いても「型が一致しない」とエラーになってしまいます。 書き方が分からないので教えてください。どうか宜しくお願いします。

  • Access97で

    アクセス97を使い顧客のデータベースを作成しました。 今日、新たな項目を必要になったのでデザインビューからチェックボックスを作成しました。それをフォームビューで確認しようとチェックを入れるとすべての情報にそのチェックが入ってしまいます。 いったんアクセスを終了させまたプログラムを起動するとそのチェックボックスは灰色に塗りつぶされたようになっています。 すべての顧客情報にチェックが入らないようにするにはどのようにすればよろしいでしょうか?

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • Access 2003 でフォームフィルターがかかりません。

    Access 2003 でフォームフィルターがかかりません。 どなたか助けてください。 アクセス初心者です。 フォームの詳細欄にチェックボックス(フィールド名:伝票チェック)を配置しております。 チェックの入っていないものを表示させたいです。 フォームヘッダーのオプショングループ(フレーム67)に オプションボタン0-オプション値0と オプションボタン2-オプション値2 の2個のオプションボタンを配置してあります。 クリック時のイベントプロシージャに以下のコードを書きました。 Private Sub フレーム67_Click() If Me!フレーム67 = 0 Then Me.Filter = 伝票チェック = 0 Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = True End If End Sub 実行時エラーは出ませんが、データが何も表示されません。 どうすればいいのでしょう??? どなたかお願いします。

  • ACCESS2000 ボタンメッセージについて

    ACCESS2000を使用しております。 フォームのボタンを押すとレポートが開くようになっています。 フォームのフィールド「終了日」がうるう年の2/28だったら、ボタンを押した時に警告のメッセージが出るようにしたいです。 現在は以下の通り、「終了日」を更新した時にメッセージが出るようにしています。 --- Private Sub 終了日_BeforeUpdate(Cancel As Integer) Const cMsg = "うるう年ですけど、2/29じゃなくて大丈夫ですか?" If Format(Me.終了日.Text, "mdd") = "228" And _ IsLeapYear(Year(Me.終了日.Text)) Then If MsgBox(cMsg, vbYesNo) = vbNo Then Cancel = True End If End If End Sub --- これをボタンの方にも流用しようと思い、(終了日を更新しない状態でもボタンを押すことがある為、その時点でもチェックを掛けたい) 以下を「マウスボタン解放時」に入れてみましたが、エラーが出てしまいました。 --- Private Sub Ctl_新_証書新規_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Const cMsg = "うるう年ですけど、2/29じゃなくて大丈夫ですか?" If Format(Me.終了日.Text, "mdd") = "228" And _ IsLeapYear(Year(Me.終了日.Text)) Then If MsgBox(cMsg, vbYesNo) = vbNo Then Cancel = True End If End If End Sub --- エラー内容は以下の通りです。 実行時エラー'2185' コントロールがフォーカスを取得していない時に、コントロールのプロパティまたはメソッドを参照することはできません。 そのままコピペしたので、値の更新をするとかしないとか、 ボタンを押した場合では関係ないので、その辺がエラーになっているのだと思うのですが、 どこを直したら良いのか分からず、お知恵をお貸し下さい。 要は、ボタンを押した時に警告メッセージを出し、「はい」であればレポートを開き(クリック時に開くマクロが入ってます)、「いいえ」であれば、開かずに元の画面のままが良いです。 宜しくお願いいたします。

    • ベストアンサー
    • Skype
  • Access2007の初心者です。VBAの記述で困っています、お力添え

    Access2007の初心者です。VBAの記述で困っています、お力添えお願いします。 チェックボックスにチェックが入っている場合に、誕生日が空白のものを抽出する部分のVBAの 記述のところで躓いているのだと思っています。 ■テーブルの情報 ・テーブル名:T_会員情報 ・T_会員情報のフィールド:会員名(テキスト形式)・性別(数値型)・誕生日(日付/時刻型) ■実現したいこと ・T_会員情報で、「検索」ボタンを押下したら、条件にあった情報がフォーム上に抽出できるもの。 ■用意したフォーム T_会員情報の連結フォーム ・フォーム上には以下を用意  ◆「性別」の非連結コンボボックス:txtSeibetsu  ◆「誕生日が空白」という非連結チェックボックス:chkBirthday  ◆「AND OR」のいずれかが選択できるオプションボタン  ◆「検索ボタン」  ◆「会員名」「性別」「誕生日」のT_会員情報の帳票フォーム ■VBA Option Compare Database Option Explicit Const cAnd = 1 Const cOr = 2 Const cBaseQuery = "SELECT * FROM T_会員情報" Private Sub 検索ボタン_Click() Dim strWhere As String Dim strAndOr As String strWhere = vbNullString If Me.optAndOr.Value = cAnd Then strAndOr = " AND " Else strAndOr = " OR " End If '性別検索 If ISNull(Me.txtSeibetsu.value)=False Then strWhere = strWhere & strAndOr & " 性別 = " & Me.txtSeibetsu.Value End If '誕生日空白検索 If Me.chkBirthday=False Then strWhere = strWhere & strAndOr & " 誕生日= " & Null End If 'WHERE句編集 strWhere = Replace(strWhere, strAndOr, "WHERE", , 1) 'レコードソース書き換えと再クエリ Me.RecordSource = cBaseQuery & " " & strWhere Me.Requery End Sub 誕生日が空白の検索のところの記述が問題だと思っています。 初心者でよくわかっておりません。 ご存知の方がいらっしゃいましたら、教えてください。 よろしくお願いします。

専門家に質問してみよう