access 2003で文字列に数字が含まれていたらセルの背景色を変えたいのですが、可能でしょうか?


条件付き書式設定をいじってみたのですが、よくわかりません。
よろしくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/10/19 15:23:02
  • 終了:2006/10/20 13:46:42

ベストアンサー

id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412006/10/19 20:20:12

ポイント35pt

http://q.hatena.ne.jp/1161238980

すいません、コメント欄開放されていなかったのですね。

再度回答で失礼します。


まず先頭の「=」は必要ありませんでした…。

また、フィールド名の前にフォーム名が必要ですね…。ああ…。

しかもTRUEとFALSEが逆…。本当にすいません。


訂正版の数式は以下の通りです。

(一応動作確認済み)


IIf((InStr([Forms]![フォーム名]![フィールド名],1)+InStr([Forms]![フォーム名]![フィールド名],2)+InStr([Forms]![フォーム名]![フィールド名],3)+InStr([Forms]![フォーム名]![フィールド名],4)+InStr([Forms]![フォーム名]![フィールド名],5)+InStr([Forms]![フォーム名]![フィールド名],6)+InStr([Forms]![フォーム名]![フィールド名],7)+InStr([Forms]![フォーム名]![フィールド名],8)+InStr([Forms]![フォーム名]![フィールド名],9)+InStr([Forms]![フォーム名]![フィールド名],0))=0,FALSE,TRUE)


以上でよろしくお願いします。

id:yue-hua

何度も済みません。

無事思ったとおりのことができました。

どうもありがとうございました!

2006/10/20 13:46:13

その他の回答(1件)

id:rikuzai No.1

りくっち回答回数1366ベストアンサー獲得回数1412006/10/19 17:06:41

ポイント35pt

http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B879811


条件付き書式を使用される場合、

次のような数式を使ってみてはどうでしょうか。

入っているテキストボックスを「テキストボックス1」とし、

条件付き書式の設定のダイアログを開き、

条件1の「フィールドの値」を「数式」に変更して、


=IIf((InStr(Forms![テキストボックス1],1)+InStr(Forms![テキストボックス1],2)+InStr(Forms![テキストボックス1],3)+InStr(Forms![テキストボックス1],4)+InStr(Forms![テキストボックス1],5)+InStr(Forms![テキストボックス1],6)+InStr(Forms![テキストボックス1],7)+InStr(Forms![テキストボックス1],8)+InStr(Forms![テキストボックス1],9)+InStr(Forms![テキストボックス1],0))=0,True,False)


(美しくないなぁ…onz)


これでOKでどうでしょうか。

不明点ありましたらコメントでフォローいたします。

id:yue-hua

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

とりあえずそのまま貼り付けてみたのですが、構文エラーが出てしまいました。

ちなみに、[テキストボックス1]のところは使っているフィールド名に置き換えました。

もし何が原因だかお分かりになるようでしたらコメント頂ければ幸いです。

2006/10/19 18:07:26
id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412006/10/19 20:20:12ここでベストアンサー

ポイント35pt

http://q.hatena.ne.jp/1161238980

すいません、コメント欄開放されていなかったのですね。

再度回答で失礼します。


まず先頭の「=」は必要ありませんでした…。

また、フィールド名の前にフォーム名が必要ですね…。ああ…。

しかもTRUEとFALSEが逆…。本当にすいません。


訂正版の数式は以下の通りです。

(一応動作確認済み)


IIf((InStr([Forms]![フォーム名]![フィールド名],1)+InStr([Forms]![フォーム名]![フィールド名],2)+InStr([Forms]![フォーム名]![フィールド名],3)+InStr([Forms]![フォーム名]![フィールド名],4)+InStr([Forms]![フォーム名]![フィールド名],5)+InStr([Forms]![フォーム名]![フィールド名],6)+InStr([Forms]![フォーム名]![フィールド名],7)+InStr([Forms]![フォーム名]![フィールド名],8)+InStr([Forms]![フォーム名]![フィールド名],9)+InStr([Forms]![フォーム名]![フィールド名],0))=0,FALSE,TRUE)


以上でよろしくお願いします。

id:yue-hua

何度も済みません。

無事思ったとおりのことができました。

どうもありがとうございました!

2006/10/20 13:46:13
  • id:rikuzai
    こちらこそお手間とらせてしまいました。
    もっとスマートな式が書ければよかったんですが…
    なので式は冗長ですが構成自体は単純です。
    InStr([Forms]![フォーム名]![フィールド名],1)
    はフィールド内の文字列の中に1が含まれていれば左から何番目にあるかの値を返し、なければ0を返します。
    これを0-9までの数で判定し、
    全てが0なら書式は不要、
    一つでも含まれていれば0より大きい数が返るので数字が含まれているので色をつける、という判断式になっています。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません