OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.202002
  • 閲覧数2157
  • ありがとう数2
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 41% (14/34)

マイクロソフトのエクセル2000で
「セルの書式設定」の「ユーザー定義」を
[=1]"○";[赤][=2]"×"にすると、
1なら○、2なら赤字の×をセルに表示される機能がありますが、
これを応用してTRUEなら○、FALSEなら赤字の×をセルに表示したいと思い、
[="TRUE]"○";[赤][=FALSE]"×"と設定してみたのですが、
上手く行かず困ってます。どこが違うのか、それともこの方法では出来ないのかを教えてください。

補足
何故これをやりたいのかと言うと、フォームのチェックボックスを使用し
「コントロールの書式設定」の「リンクするセル」の返り値が
TRUEとFALSEなので、このセル自身を見やすい文字に変更したいと思ったので・・・。
リンクするセルと違うところに○×を置くのは簡単にif関数で出来るんですが、
リンクするセル自身を○×に置くのができないです。

お手数かと思いますが、セルの書式設定に拘らず、
何らかのヒントを知ってる方、教えてください。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

質問のような表示ができるようにしてみました。(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
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル11

ベストアンサー率 25% (87/346)

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

エクセルのヘルプで検索してみてください!

  • 回答No.2
レベル14

ベストアンサー率 28% (4323/15250)

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

お礼率 41% (14/34)

早速の回答、ありがとうございます。
違うセルにあればimogasiがおしゃっているように
if関数を用いればTRUE、FAISEであってもできる事はわかっては
いるのですが、同じセルになるとVBAを組むしか方法は無いんですかね。
出来れば簡単な方法がいいんですが、
なければ、VBAの場合こうすれば出来るって方法でもいいんで、
引き続き回答お願いします。
投稿日時 - 2002-01-20 23:31:33
  • 回答No.4
レベル14

ベストアンサー率 28% (4323/15250)

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

ベストアンサー率 68% (791/1163)

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

'チェックボックス-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

お礼率 41% (14/34)

お返事遅くなりまして、すいません。
結論はやはりVBAを使わないと出来ないってことですね。
nishi6さんのVBAの例を参考にして
これからやってみたいと思います。
皆さん、ご協力ありがとうございました。
次質問したときもよろしくお願いします。
投稿日時 - 2002-01-23 23:01:16
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ