マイクロソフトのエクセル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エクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

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

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

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

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

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

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

Aベストアンサー

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

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

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

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

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

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

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

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

Aベストアンサー

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

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

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ランキング