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

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

お手数かと思いますが、セルの書式設定に拘らず、
何らかのヒントを知ってる方、教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

質問のような表示ができるようにしてみました。

(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
    • good
    • 0

一部修正して下さい。

途中のマクロを回答してしまいました。

'チェックボックス-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
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/23 23:01

BOOLEAN値のFALSEやTRUEの値が入っている列を非表示に


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

セルA1に例えば1を入力する。


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

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

お礼日時:2002/01/20 23:31

「条件付き書式」でなんとか成るような気はしますが


詳細な設定方法は、よく判りません(^-^;)
(“FALES”を赤字にするだけならすぐ出来るはずです)

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

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q[セルの書式設定][横位置]の[インデント]の単位

添付図は
1.セル A1 を選択
2.[書式]→[セル]→[配置]を実行
3.[横位置]として“左詰め(インデント)”を選択
4.[インデント]として“2”を選択
5.[文字の制御]として“折り返して全体を表示する”を選択
した後で、次の文を入力した状態を示しています。
Mao Asada successfully landed a triple axle and earned her new personal best score of 142.71, but placed sixth overall due to a poor performance in the short program.
フォントの種類は Courier New です。
なお、標準書式セル A2 にも上と同じ文を入力しています。

ちなみに、私は Excel 2002 を使用しています。

さて、セル A2 と比較して分かるように、セル A1 の左端は約3文字分のスペース幅になっています。このスペース幅とインデント数値との関係を調べてみると次のようになりました。
インデント値 左端スペース幅
    0    0文字分(スペースなし)
    1    約2文字分
    2    約3文字分
    3    約5文字分
    4    約7文字分

[インデント]で設定する数値の単位は何なのでしょうか?
そのことを説明した記述を紹介していただけたら助かります。

添付図は
1.セル A1 を選択
2.[書式]→[セル]→[配置]を実行
3.[横位置]として“左詰め(インデント)”を選択
4.[インデント]として“2”を選択
5.[文字の制御]として“折り返して全体を表示する”を選択
した後で、次の文を入力した状態を示しています。
Mao Asada successfully landed a triple axle and earned her new personal best score of 142.71, but placed sixth overall due to a poor performance in the short program.
フォントの種類は Courier New です。
なお、標準書式セル A2 にも上と同じ文...続きを読む

Aベストアンサー

> インデント]で設定する数値の単位は何なのでしょうか?
> そのことを説明した記述を紹介していただけたら助かります。

下記URLのページには、次のように説明されています。

『インデントの幅は、Excelの初期設定のフォントサイズである「MSゴシック 11ポイント」の文字数を基準とした単位で指定されるため、フォントサイズが異なるセル同士でも同じ間隔でインデントを設定することができます。』

「セルに入力した文字列を1文字分だけ右にずらしたい(Excel)」
http://www.jpita.or.jp/hpv3/ziten/mokutekibetu/ex_59.html


Defaultの「MSゴシック 11ポイント」は、
「ツール」メニュー→「オプション」→「全般」タブで、設定されている「標準のフォント」および「サイズ」によります。

「Excel の [セルの書式設定] ダイアログ ボックスの設定を制御および理解する方法」
http://support.microsoft.com/kb/264372/ja

QEXCELの表、組[A列]:番号[B列] を 組[A列]:番号[行]に変換する方法

EXCELに
A列に組、B列に番号がそれぞれ反映されている表があります。
これを
A列に組、同行に番号が横並びに配置された状態に変更したいと考えております(添付画像)。

D列にはA列の組名を「重複なし」で貼り付けます。
このとき、E列~K列にどのような数式を入力すればよろしいでしょうか?
E1に入力する数式を教えていただけるとありがたいです。
何卒よろしくお願いいたします。

Aベストアンサー

こんばんは!

画像の配置だとE1セルに
=IF($D1="","",IFERROR(INDEX($B$1:$B$1000,SMALL(IF($A$1:$A$1000=$D1,ROW($A$1:$A$1000)),COLUMN(A1))),""))

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → E1セルを選択 → 数式バー内に貼り付け →そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE1セルのフィルハンドルで列・行方向にずぃ~~~!っとフィル&コピーします。

こんな感じではどうでしょうか?m(_ _)m

Qexcel2010の[書式]-[スタイル]はどこに

excel2003では[書式]-[スタイル]を表示させると
標準のフォントサイズ等見れますが2010ではこの項目は何処に行ったのでしょうか?

Aベストアンサー

「ホーム」-「セルのスタイル」、標準となっているところで右クリック→変更で以前と同じように確認及び、変更できます。

Q[原紙]→[スキャナー]→[フォトショップ]→[エクセル]での原寸印刷のやり方

タイトルに書きましたとおり、[原紙]→[スキャナー]→[フォトショップ]→[エクセル]で、最初に取り込んだ[原紙]と全く同じサイズで印刷に出したいのですが、原寸よりも小さくなってしまうので困っています…。

紙に印刷された画像をスキャナで取り込み、フォトショップでgif画像にしました。
と、ここまでは原寸だったのですが、エクセルに貼り付けて印刷しましたら、実際のものよりも一回り小さくなって印刷されてしまいました。
縦横比は同じです。
2.33cmが、1.75cmになりました。

エクセルに貼り付けるときに、「挿入」→「図」→「ファイル」から貼り付けました。
「図の書式設定」では100%になっています。

普段は[原紙]→[スキャナー]→[フォトショップ]→[イラストレーター]で印刷しているのですが、その時は原寸で出ます。(今回もその方法なら原寸なのですが…)

原寸で印刷するにはどうしたらいいのでしょうか?
よろしくお願い致します。

Aベストアンサー

画像を貼り付けるエクセルのシートは事前にページ設定が出来てますでしょうか?
メニューバーで表示>改ページプレビューの設定にして見やすいサイズに表示倍率を上のツールバーで設定してください。青色の改ページラインが貼り付けた画像とほぼ同じになっていますか?画像より大きければドラッグして改ページラインを画像に合わせてください。

Q[色]+#,##0;[色]-#,##0;[色]0;@ と[<10]#.0;0 同時設定可能ですか?

よろしくお願いします
いつもgooの皆さんには大変お世話になっております
お陰様でエクセルが大分進歩しました
win8.1でエクセルは2013です

タイトルの通り、2つの書式は同時に設定できますか?
可能であればその書き方を教えていただけないでしょうか?
同時に設定したい書式は下記のとおりです

[色]+#,##0;[色]-#,##0;[色]0;@  と [<10]#.0;0 です

Aベストアンサー

こんばんは!

おそらくセルの書式設定のユーザ定義は最大3個までしか設定できなかったともいます。

ユーザー定義の欄に
[赤][<0]-#,##0;[青][<10]0.0;[青]#,##0;@
としてみてください。
① マイナスの場合のフォント色は「赤で3桁のカンマ区切り」
② プラスの場合で10未満の場合は「青で小数点以下一けた表示」
③ プラスで10以上の場合は「青で3桁のカンマ区切り」
その他(文字列)の場合は「自動」(黒)

以上のような表示になると思いますが、
「0」の場合の設定ができません。
「0」の場合の表示桁数は一桁でフォント色は「自動」がお望みなのではないでしょうか?
おそらく手動でのセルの書式設定のユーザー定義ではどれか一つを犠牲にする必要があるのではないかと思います。
(できる方法があればごめんなさいね。)

ただ、お望みの方法ではないかもしれませんが、
上記条件付き書式のセル変更があればマクロで書式を変えてやる方法があります。

マクロでやるとなるとわざわざセルの書式設定を手動でやる意味がないので
敢えて今回はこの程度で・・・m(_ _)m

こんばんは!

おそらくセルの書式設定のユーザ定義は最大3個までしか設定できなかったともいます。

ユーザー定義の欄に
[赤][<0]-#,##0;[青][<10]0.0;[青]#,##0;@
としてみてください。
① マイナスの場合のフォント色は「赤で3桁のカンマ区切り」
② プラスの場合で10未満の場合は「青で小数点以下一けた表示」
③ プラスで10以上の場合は「青で3桁のカンマ区切り」
その他(文字列)の場合は「自動」(黒)

以上のような表示になると思いますが、
「0」の場合の設定ができません。
「0」の場合の表示桁数は一...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報