アクセス複数の条件で同じ書式をつけるには?
- VBAで条件付き書式を使用して、同じ書式を複数の条件に適用したい場合、まとめることはできないのか疑問です。
- 具体的には、フォームのフィールドに対して、「あ」と「い」の場合に赤色の書式を適用したいと考えています。
- しかし、上記の方法だと実行時エラーが発生してしまいます。もし複数の条件で同じ書式を適用したい場合、別々に設定するしか方法はないのでしょうか?
- ベストアンサー
アクセス複数の条件で同じ書式をつけるには?
条件付き書式です。(しかもVBAです) 一つのフィールドに対して違う条件だけど同じ書式をつけたい時、 まとめる事は出来ないのでしょうか? 例えばフォールド1の「あ」と「い」を赤にしたい場合、 Sub test01() Dim Field As String Dim MyFormName As String MyFormName = "フォーム" Field = "フィールド1" With Forms(MyFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""" And "[" & Field & "]=""い""") .ForeColor = 225 End With End With End With End Sub のような事は出来ないのでしょうか? これをすると 実行時エラー:型が一致しません。(Error 13) になります。 素直に、 Sub test02() Dim Field As String Dim MyFormName As String MyFormName = "フォーム" Field = "フィールド1" With Forms(MyFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""") .ForeColor = 225 End With With .Add(acExpression, , "[" & Field & "]=""い""") .ForeColor = 225 End With End With End With End Sub としなくちゃダメでしょうか? 何故こんな事がしたいかと言うと、3つ以上やりたい条件がありので、 同じ書式のものはまとめたいのです。 ご教授よろしくお願いします。
- snxosrmijia
- お礼率100% (45/45)
- オフィス系ソフト
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
解決しましたか? ダブルクォーテーションの数とAndの位置設定が違っているようですが。 以下のように。 With .Add(acExpression, , "[" & Field & "]=""あ"" And [" & Field & "]=""い""") あるいは、条件が「あ」または「い」の時ならば、 With .Add(acExpression, , "[" & Field & "]=""あ"" Or [" & Field & "]=""い""") でよろしいかと。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
No2の変数名に余分なものがくっついていました。 With .Add(acExpression, , "[" & Field & "]=""あ"" Or [" & Field & "]=""い""") です。
お礼
回答ありがとうございました。
- piroin654
- ベストアンサー率75% (692/917)
No1です。 たぶん、Andで条件を結合すると質問の画像では色がつかないので、 二番目のOrで条件を結合するようになると思いますが。以下です。 With .Add(acExpression, , "[" & strField & "]=""あ"" Or [" & strField & "]=""い""")
お礼
回答ありがとうございました。
関連するQ&A
- 白のコード(数値)を教えてください。
Sub test() Dim Field As String Dim MyFormName As String MyFormName = "フォーム" Field = "フィールド1" With Forms(MyFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""test""") .ForeColor = #FFFFFF '白にしたい End With End With End With End Sub フォームに条件付書式を設定したくて上記のコードをVBE画面に貼りつけたのですが 文字色を白にしたいのです。 しかしデザインビューで白を確認すると、「#FFFFFF」となってしまい、 VBAコードに貼りつけるとコンパイルエラーになります。 アクセス2007です。 白のコード(数値)を教えてください。
- ベストアンサー
- オフィス系ソフト
- 「フォーカスのあるフィールドに色を付ける」vba
帳票フォームの全てのコントロールに 条件付き書式で 「フォーカスのあるフィールドに色を付ける」を行いたいのですが コントロールが多すぎる為VBAでループさせたいのですがコードがわかりません。 http://www.tsware.jp/tips/tips_187.htm これをVBAで行いたいです。 VBAでの条件付き書式は Sub Sample() Dim Field As String Dim myFormName As String With Forms(myFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""") .BackColor = 225 End With End With End With End Sub こんな感じで出来る事は知ってますが、 vbaで「フォーカスのあるフィールドに」と言う条件の付け方がわからないので教えてください。
- ベストアンサー
- オフィス系ソフト
- VBAで条件付書式
アクセス2003なのですが 「色を青にして太字に」するにはどうすればいいでしょうか? Sub 条件付書式() With Form_フォーム1.テキスト2 .ForeColor = RGB(255, 255, 255) With .FormatConditions .Delete .Add(acExpression, , "[テキスト2]=""青にする""").ForeColor = 16711680 '青 End With End With End Sub で青にはなるのですが 青なおかつ太字にするにはどうすればいいでしょうか? FontStyle プロパティを使うのでしょうか? 書き方を教えてください。
- ベストアンサー
- オフィス系ソフト
- アクティブ(カレント)レコードに条件付き書式で
アクティブ(カレント)レコードに条件付き書式で色を付けるには? フォームに乗ってるサブフォームに対して、レコードが移動したら条件付き書式をつけたいです。 サブフォームのCurrentイベントに ////////////////////////////////////////////////////// Private Sub Form_Current() Dim avarContorol As Variant Dim iLoop As Integer Dim ctl As Control Dim mystr As String Dim i As Integer ReDim avarControl(Me.Controls.Count - 1) For i = 0 To Me.Controls.Count - 1 avarControl(i) = Me.Controls(i).Name Next i For iLoop = 0 To UBound(avarControl) With Me.Controls(avarControl(iLoop)).FormatConditions .Delete 'コントロールが文字列型ならダブルコーテーションでくくる With .Add(acExpression, , "[名前] = """ & Me.Controls("名前") & "") .BackColor = 255 End With End With Next iLoop End Sub ////////////////////////////////////////////////////// としたのですが、エラーにもならないけど、色もつかないです。 予想としては赤になると思ったのですが・・・ しかも、2010は設定した条件付き書式をフォームビューでは確認できないようです。 フォームビューで設定した条件付き書式は保存されないから、デザインビューで確認しようとしても、見れません。 サブフォームに対して行おうとしているからできないのでしょうか? どこが間違ってるか教えていただけますか? ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2010のバグ?(条件つき書式)
test1は、A~X列に数字と条件付き書式をセットするマクロですが、途中のセルから色化けします。 原因がお分かりの方はご教授ください。どうもExcel2010のバグのように思われます。 バグならMicrosoftのどこに報告あるいは問い合わせれば良いでしょうか。 Sub test1() Dim aRow As Long Dim aCol As Long With ActiveSheet For aRow = 1 To 3 For aCol = 1 To 25 .Cells(aRow, aCol).Value = aCol Call SetFormatConditionOfColor(aRow, aCol, "=1") Next Next End With End Sub Public Sub SetFormatConditionOfColor(ByVal aRow As Long, ByVal aCol As Long, ByVal aFormula As String) With ActiveSheet.Cells(aRow, aCol) .FormatConditions.Delete '一致するセル .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:=aFormula With .FormatConditions(1) .Font.Color = 0 .Interior.Color = 13434879 End With '一致しないセル .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ Formula1:=aFormula With .FormatConditions(2) .Font.Color = 16777215 .Interior.Color = 16767843 End With End With End Sub OS: MS WindowsXP Professional Service Pack3 Excel: Microsoft Office Professional Plus 2010 14.0.5128.5000(32ビット)
- ベストアンサー
- オフィス系ソフト
- 複数の条件付書式
B列に1~5までに数字がランダムにはいっています。 条件は ・B列が空白ならA列は無色 ・B列が1ならA列は赤 ・B列が2ならA列は青 ・B列が3ならA列は黄色 ・B列が4ならA列は緑 というのをマクロで行ないたいです。 自分で記録して Sub Macro32() Columns("A:A").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B1=""""" Selection.FormatConditions(1).Interior.Pattern = xlNone Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B1=1" Selection.FormatConditions(2).Interior.ColorIndex = 38 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B1=2" Selection.FormatConditions(3).Interior.ColorIndex = 40 End Sub 4つ目に Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B1=3" Selection.FormatConditions(4).Interior.ColorIndex = 32 とするとエラーになります。 3つ以上の条件付書式の書き方を教えてください。 あとこの構文のSelectionはwithで省略できますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【2】 【VBA】アクセス 条件付書式 (Yes/No型)
以前にも質問してアドバイスを頂き http://msdn.microsoft.com/ja-jp/library/cc347606.aspx をみてやってみたのですが全然うまくいきませんでした。 式 [テーブル1.フィールド1]=True 該当するものの背景を灰色 にしたいのですが この「テーブル1」は「親フォーム」のサブフォームの中に入っている「子フォーム」上あるものなのです。 Sub test5() With Forms("子フォーム").Controls("フィールド1").FormatConditions(1) .BackColor = RGB(255, 255, 255) End With End Sub を実行すると マクロの式または visual Basic コードで参照されている ’子フォーム’フォームが見つかりません。 のエラーが返ります。 そもそも「親フォーム」「テーブル1」はどこに入れればいいでしょう? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで条件付書式設定方法
次の内容の件です Dim wArray As Variant Dim wI As Integer ' セルA3:K3の条件付書式設定 A3の設定:A3=B3は黒,A3<B3は緑,A3>B3は赤,以降同様に wArray = Array(, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L") For wI = 1 To UBound(wArray) - 1 Sheets("Sheet1").Cells(3, wI).Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$" & wArray(wI) & "3=$" & wArray(wI + 1) & "3" With Selection.FormatConditions(1).Font .Bold = False .Italic = False .ColorIndex = xlAutomatic End With Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$" & wArray(wI) & "3<$" & wArray(wI + 1) & "3" With Selection.FormatConditions(2).Font .Bold = False .Italic = False .ColorIndex = 10 End With Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$" & wArray(wI) & "3>$" & wArray(wI + 1) & "3" With Selection.FormatConditions(3).Font .Bold = False .Italic = False .ColorIndex = 3 End With Next wI 実行時にアクティブセルにならないコーディング方法は? また、もっと合理的な、シンプルな方法はないでしょうか? いろいろと、やってみましたが、エラーとか行ズレとなり困っています よろしくご教示ください
- ベストアンサー
- オフィス系ソフト
- 条件付書式をVBAでセルに設定するときのルール
図のような列があります。 C列にこだわっているわけではないのですが、その左側にある列で計算をしているという意味で、A、B列はあけただけです。 で、IF文で計算してある条件に合致するとC列で「TRUE」を表示し、合致していない場合はそのときの計算結果を表示させています(IF文的に正しくないので、計算したままの値が計算結果として表示される)。 この結果の見せ方として、これまではC列に「条件付書式」を手動で設定し、文字がTRUEのとき字を青くする表示にしていたのですが、同様の処理を行うExcel Bookファイルが多いため、VBAで条件書式を設定しようとし、次のような記述を実行しました。 すると、図のような結果になりました。 ---------------------------------------------- Sub TestSample() Dim i As Long i = 20 '実際には最終行はBookによって異なるので、 ’行末検索させせていますが、とりあえずここでは20としておきます。 With ActiveSheet Range(Cells(2, 3), Cells(i, 3)).Select With Selection FormatConditions.Add Type:=xlTextString, String:="TRUE", _ TextOperator:=xlContains .FormatConditions(1).Font.Color = RGB(0, 50, 255) ’ーーA .FormatConditions(1).Interior.TintAndShade = 0 ’ーーB End With End With End Sub ---------------------------------------------- 質問が2つあります。 1. 背景がいわゆる「色なし」ではなく白くなっていますが、背景「色なし」かつ「罫線でかこむ」には、どのような記述をすればよいでしょうか 2. FormatConditions.Add Type:~~~~ につづく別の行(Aのところ)に「FormatConditions.」と記述すると実行できません。 マクロで条件書式の自動記録をやって参考にしたところ、添値のような(1)が記録されることに気が付き、それを真似して FormatConditions(1). としたところ、動作しました。 最初だけFormatConditionsで、なぜAのところはFormatConditions(1).となるのか、またAとBはどちらも「FormatConditions(1).」でダブっているのに処理上エラーを返さないのか、理屈がわかりません。 (1)がつく意味と、AとBはどちらも(1)で(ダブっても)動作するのか(逆にいえば、なぜ最初のFormatConditionsだけ、番号がついていないのか、たぶんデフォルトで(0)の意味?) について、このへんの仕組みの解説をよろしくお願いします。
- ベストアンサー
- Visual Basic
- EXCELVBAであるセルに設定されている条件式書式を取得したいと
EXCELVBAであるセルに設定されている条件式書式を取得したいと 以下のマクロを組みました。しかし、3つ設定されている条件式のうち 1つの条件が3回表示されるため、困っています。 何が悪いのかご教授ください。 Public Sub FormatConditionsTest() Dim obj As Range Set obj = Cells(108, 10) Dim colFmt As FormatConditions Set colFmt = obj.FormatConditions Dim item As FormatCondition For Each item In colFmt MsgBox (item.Formula1) Next End Sub
- ベストアンサー
- その他(プログラミング・開発)
お礼
回答ありがとうございました。