• ベストアンサー

「セルの書式設定」の「ユーザー定義」でセルの値がTRUEなら○FALSEなら×と表示する方法について

マイクロソフトのエクセル2000で 「セルの書式設定」の「ユーザー定義」を [=1]"○";[赤][=2]"×"にすると、 1なら○、2なら赤字の×をセルに表示される機能がありますが、 これを応用してTRUEなら○、FALSEなら赤字の×をセルに表示したいと思い、 [="TRUE]"○";[赤][=FALSE]"×"と設定してみたのですが、 上手く行かず困ってます。どこが違うのか、それともこの方法では出来ないのかを教えてください。 補足 何故これをやりたいのかと言うと、フォームのチェックボックスを使用し 「コントロールの書式設定」の「リンクするセル」の返り値が TRUEとFALSEなので、このセル自身を見やすい文字に変更したいと思ったので・・・。 リンクするセルと違うところに○×を置くのは簡単にif関数で出来るんですが、 リンクするセル自身を○×に置くのができないです。 お手数かと思いますが、セルの書式設定に拘らず、 何らかのヒントを知ってる方、教えてください。

  • awada
  • お礼率41% (14/34)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

質問のような表示ができるようにしてみました。(Excel97,2000で確認) チェックボックスが何個あるか分かりませんので、2個のケースです。数によって『チェックボックス-1用』等を増やして下さい。『チェックボックス-1』に『チェックボックス-1用』のマクロを登録します。 ※質問から推測すると、フォームのチェックボックスを使われているようですが、Excel97以降ならコントロールツールボックスのチェックボックス(他のコントロールも)を使われたほうがいいと思います。新しいし、設定も楽でコードも書き易いです。下はフォームのチェックボックスということで思い出しながら書いてみました。(使えるプロパティが無いのが欠点ですね) ※チェックボックスのリンクするセルを見えないところ(セル)を指定して(別シートでも)、表示したいセルに   =チェックボックスのリンクするセル番地*1 (または+0)とすれば 「True」、「False」という Bool値を数値に変換できるのでマクロは不要になると思われます。 チェックボックスのリンクするセルの書式は [=1]"○";[赤][=0]"×" とします。 ↓ここから。チェックボックスのあるシートのコードウインドウに貼り付けます。 Dim ChechBoxAddress As String 'チェックボックスのリンクするセルの番地 Dim ChechBoxClickFlg As Boolean 'チェックボックスをクリックすればTrue Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Target.Address = ChechBoxAddress Then     'チェックボックスのクリックだけに反応させる     If ChechBoxClickFlg = True Then       '選択されたセルがチェックボックスのリンクするセルなら       'True→1、False→0に書き換える(チェックボックスの選択状態は変わらない)       If Target.Value = True Then         Target.Value = 1       Else         Target.Value = 0       End If       ChechBoxClickFlg = False     End If   End If End Sub 'チェックボックス-1用(個々のチェックボックス用。例:F3がリンクするセル) Sub CheckBox1_Valuechange_Numeric()   'リンクするセルをセットする   ChechBoxAddress = "$F$3": selectChechBoxRange ChechBoxAddress End Sub 'チェックボックス-2用(個々のチェックボックス用。例:F5がリンクするセル) Sub CheckBox2_Valuechange_Numeric()   'リンクするセルをセットする   ChechBoxAddress = "$F$5": selectChechBoxRange ChechBoxAddress End Sub 'チェックボックスのリンクするセルを選択する(共通) ' ※チェックスボックスのクリックではWorksheet_SelectionChangeが起きないため自力で動かす Sub selectChechBoxRange(rgChkBox As String)   Dim rg As Range 'アクティブセルの番地を退避   Set rg = ActiveCell   If rg.Address <> rgChkBox Then     'アクティブセルがチェックボックスのリンクするセルでなかったらリンクするセルを選択する     Range(rgChkBox).Select   Else     'アクティブセルがチェックボックスのリンクするセルならリンクするセルの斜め右下を選択する     rg.Offset(1, 1).Select   End If   '元のアクティブセルを選択状態にする   rg.Select End Sub

その他の回答 (4)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

一部修正して下さい。途中のマクロを回答してしまいました。 'チェックボックス-1用 Sub CheckBox1_Valuechange_Numeric()   'リンクするセルをセットする   ChechBoxAddress = "$F$3": ChechBoxClickFlg = True   selectChechBoxRange ChechBoxAddress End Sub 'チェックボックス-2用 Sub CheckBox2_Valuechange_Numeric()   'リンクするセルをセットする   ChechBoxAddress = "$F$5": ChechBoxClickFlg = True   selectChechBoxRange ChechBoxAddress End Sub

awada
質問者

お礼

お返事遅くなりまして、すいません。 結論はやはりVBAを使わないと出来ないってことですね。 nishi6さんのVBAの例を参考にして これからやってみたいと思います。 皆さん、ご協力ありがとうございました。 次質問したときもよろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

BOOLEAN値のFALSEやTRUEの値が入っている列を非表示に するのはどうでしょうか。 列Bを選択-書式-列-「表示しない」で列の非表示になりますよね。 エクセルでは変数にあたるものは、セルだと思います。そして全ての 変数=セルはシート画面に表示されてしまいます。それでB列とC列 をペアーで考えて、B列をC列の裏にある変数と見なすと、自分自身の値(B列の値)を参照してあたかも自分自身(C列)の表示を好きなようにすることが出来るわけです。そして楽屋裏のB列は見せないために隠す。 こういうのは見当はずれでしょうか。 プログラムではほとんどの言語で、例えばA=2*A というのが出来るのに、表計算では出来ないのが歯がゆい と思うことがありませんか。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

セルA1に例えば1を入力する。 セルB1に関数式=IF(A1=1、”○”、”×”)といれる。○は「まる」×は「ばつ」で出ます。そしてB1を選択して、メニュバーで書式-条件付き書式-「セルの値が」-「次ぎの値に等しい」-「○」-「書式」をクリック-フォントのタブをクリック-「色」-赤色をクリック-「OK」-「OK」をクリックでいかがでしょうか。このB列に複写するとA列が1で赤○、その他で黒×になります。 ただセルの値がTRUE、FALSEである点がどうすれば良いか。 この回答では、A列に値があって、B列に○×表示があるが、A列そのものに○×に置きかえるのは出来るかどうか わかりません。VBAでプログラムをくむより他ないのではないでしょうか。良く分かっている方はご教示を。

awada
質問者

お礼

早速の回答、ありがとうございます。 違うセルにあればimogasiがおしゃっているように if関数を用いればTRUE、FAISEであってもできる事はわかっては いるのですが、同じセルになるとVBAを組むしか方法は無いんですかね。 出来れば簡単な方法がいいんですが、 なければ、VBAの場合こうすれば出来るって方法でもいいんで、 引き続き回答お願いします。

  • hidearex
  • ベストアンサー率25% (87/346)
回答No.1

「条件付き書式」でなんとか成るような気はしますが 詳細な設定方法は、よく判りません(^-^;) (“FALES”を赤字にするだけならすぐ出来るはずです) エクセルのヘルプで検索してみてください!

関連するQ&A

  • EXCEL2000のセルの書式設定

    写真の黄色く塗りつぶして表示している値を、セルの書式設定を利用して、 青く塗りつぶしている表示に変えようとしています。 セルの書式設定で⇒ユーザー定義で、 [=FALSE]"○";[=TRUE]"●";; と入れてみてできるかなって思いましたが、うまく出来ませんでした。 どのように設定すれば、うまく条件設定できるか、教えていただけないでしょうか?

  • セルの書式設定のユーザー定義でセルに式を入力したい

    エクセル2007を使っています。 「セルの書式設定」の「ユーザー定義」で、 例えば「赤」とセルに入力しただけで、セルに「赤色」と表示される方法はわかるのですが(@"色")、 A1セルに「赤」と入力されているとして、 隣のB1セルを上記のようにセルの書式設定で「@"色"」と設定して、 B1セルに「=A1」と入力しても 「=A1色」と表示されてしまいます。 これを「赤色」とB1セルに表示させたいのですが、どうしたらいいのでしょうか? つまり、セルには式を入力して、尚且つ書式設定もしたいと思っています。 宜しくお願いします。

  • excelのtrue/falseの表示とかについて

    エクセルで論理式の返り値としてtrue falseが返ってきますが、 true を 0 false  を 1 とする表示形式ってあるのでしょうか? if文を使えば出来るのは充分承知した上での質問です。 ついでの質問ですが、FALSEの入っているセルを + 計算すると普通の1として扱ってくれますが、 SUM で計算するとエラーになるのは、どういう理由かご存知の方教えてください。

  • EXCEL セルの書式設定(ユーザー定義)で 0(ゼロ)を表示する方法

    【例】 セルに[1000]と入力した際、自動的に[1,000件]と表示させる場合、 セルの書式設定のユーザー定義で[#,###"件"]と定義すればできると思うのですが、そのセルに[0]と入力した場合、[0件]ではなく、[件]となり、[0]が表示されません。 この場合に[0件]と表示させる方法はありますでしょうか? どなたかご教授下さい。 よろしくお願い致します。

  • セルの書式設定→ユーザー定義

    誰か教えてください。 セルの書式設定→ユーザー定義にて数字の1を入れたら晴 数字の2を入れたら曇、数字の3を入れたら雨 数字の4を入れたら雪と表示できるようにしたいんですけど・・・ 前、雑誌かなんかに書いてあったような気がしたんですけど 出来るんでしょうか?

  • 条件付き書式設定でユーザー定義関数

    ユーザー定義関数を以下のように作成しました。 Function AAA(i As Integer) As Boolean If i = 1 Then AAA = True Else AAA = False End If End Function このユーザー定義関数を条件付き書式で使用するときに期待した動作になりません。 条件付き書式のルールに 【1】 =AAA(1) とするとTRUEになりましたが、 【2】 =AAA(ROW(B1)) と入力するとTrueと判定されませんでした。(ここでTrueと判定させたかった) なお【3】 =ISERROR(AAA(ROW(B1))) と入力するとTrueと判定されました。 (補足) 【2】はB1セルの行番号(=1)をAAA関数で判定させてます。 実際は、列番号も引数に加えて、表全体に条件付き書式を設定しようとしてます。 ちなみにセルに直接上記数式を入力した場合 【1】→True 【2】→True 【3】→False となります。 【2】のエラーの原因は何でしょうか? 【2】でTrueと判定させる方法はありますか? 以上、よろしくお願いします。 ※エクセル2010

  • Excelにて100%以上を黒字で100%以下を赤字で表示したい。(出来ればセルの書式設定で)

    ご存知の方教えてください。 Excelにて実績表を作成中なのですが、100%以上を黒字で、100%以下を赤字で表示したく「条件付き書式」を用いて セルの値が  次の値以下  1   (書式はフォント赤) を設定したのですが、上手くいきませんでした。 解説本を読みながら「セルの書式設定」→「表示形式」→「ユーザー定義」でも表示できそうなのですが、良く分かりませんでした。 お願いします。

  • セルの書式設定のユーザー定義

    お世話になります。 セルの書式設定にあるユーザー定義を使って、大会のタイム入力を簡略化したいと思っています。 3344と入力すると33秒44となるように設定してあるのですが、タイムが1分を超えてしまうものがあり、その場合13344→133秒44と表示されてしまいます。 そこで、4ケタの時は○○秒○○、5ケタの時は○分○○秒○○というように表示されるよう設定したいのですが、そういうことは可能でしょうか? (例) 3344→33秒44 13344→1分33秒44 よろしくお願いします。

  • エクセルのセル表示形式「ユーザー定義」でTRUEをYESに?

    エクセル2000です。 こんなことできませんか? フォームのチェックボックスのリンクするセルには、チェックをするとTRUE、しないとFALSEが表示されますが、セルの表示形式で、これを「Yes」「No」に変えたいのです。 もちろん、=IF(リンク先セル,"Yes","No")と、関数で別セルに表示させることは出来ますが、リンク先自体の表示そのものを変えることは出来ないかなぁ・・・っていう質問なんです。 どなたかご存知の方ご教示くださいませ。

  • EXCELのセルの書式設定表示形式ユーザ定義について

    こんにちは。 EXCELのセルの書式設定の表示形式のユーザ定義で次のとおり表示させたいのですがどうすればよいですか? セルに0.5と入力したら、 【1:0.5】 1.0と入力したら 【1:1.0】 5.4と入力したら 【1:5.4】 入力する数字の範囲は、0.1~9.9までです。

専門家に質問してみよう