• ベストアンサー

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

nishi6の回答

  • ベストアンサー
  • 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

関連する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までです。