• 締切済み

[Excel VBA] 入力された値に応じて

Excelの表示形式で、入力された値に応じて表示された値を変えることが出来ますが、二つか三つまでしか設定できません。 これと同様の事をvbaを使って組む事は可能ですか? またどのように組めばよいのでしょうか。 厚かましいのですがサンプル等があれば有難く思います。 現時点で考えているのは、 1と入力されたら〇を表示、 2と入力されたら◎を表示(ここまでは書式設定で可能) -1と入力されたら赤字で〇を表示 -2と入力されたら赤字で◎を表示 それ以外は黒字でそのまま入力された値を表示 どなたか宜しくお願い致します。

  • ya_m
  • お礼率100% (1/1)

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

忘れてしまったので、かなりいい加減かつ要領が悪いですが・・・ こんなj感じではどうでしょうか。 (一応、旧型のExcel2003で確認しています) Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range, rng As Range, isect As Range Dim txt As String Set rng = Range("B2:B10") '  対象のセル範囲 Set isect = Application.Intersect(Target, rng) If Not (isect Is Nothing) Then For Each c In isect txt = c.Value c.Font.Color = vbBlack If txt = "1" Then c.Value = "○" ElseIf txt = "2" Then c.Value = "◎" ElseIf txt = "-1" Then c.Value = "○" c.Font.Color = vbRed ElseIf txt = "-2" Then c.Value = "◎" c.Font.Color = vbRed End If Next c End If End Sub

ya_m
質問者

お礼

ありがとうございます! 数字入力で〇に表記が変りました。 ただ、入力時の色は赤で表記されているのですが、 〇になったときに黒に戻るみたいです。

ya_m
質問者

補足

お礼で蛇足を入れてしまいました。 条件付書式をはずしたところ、望みどおりの動きをしました。 ありがとうございました。

関連するQ&A

  • Excel2007で書式と入力規則を固定したい。

    Excel2007で書式と入力規則を固定したい。 Excel2007でシートに書式や入力規則を設定して、 単純に行の削除で上にシフトをするとセルの値が 消えて、行をつめてくれるのですが、書式や入力規制 までもがつめられてしまいます。 値だけをつめて、書式や入力規制は残したままにしたいのですが、 何か方法はありませんか? やろうと思えば、その行の値を消してから、 行より下のセルをコピーして値のみ貼り付ける ということもできるのですが、頻繁にする作業なので、 もっとスマートにできるようにしたいです。 そんな操作方法があれば、お願いいたします。 もしくは、VBAで実現するならそのプログラムのヒントでも いただけたらありがたいです。 よろしくお願いいたします。

  • Excel数値入力にて

    お世話になってます。 Excelの数値入力にてセルに10の-3乗を入力したくて、10-3と入力すると、日付になってしまいます。 セルの書式設定の表示形式を触るのでしょうか? 教えて下さい。

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

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

  • Excel2000で入力値よりも一桁小さくなってしまう

    Excel2000をWindows98SecondEdition上で使用しています。 久しぶりにexcelを使ってみたところ、おかしな事が起こりました。新規作成したシートや過去に保存したファイルを開いてセルに数値を打ち込むと、なぜか一桁小さい数値が入力されてしまいます。例えば1024を入力すると102.4になってしまいます。どのセルに数値を打ち込んでも同じことが起こってしまいます。 初期設定を故意に変更したことは今までありません。セルの書式設定の表示形式は標準のままです。 よろしくお願いします。

  • Excel2003 セルの書式で通貨「$」を選択すると、数字の前に「$¥」がつきます。

    こんにちは。お世話になります。教えてください。 知人のパソコンで発生しており、何かの設定で治るのかエクセルの何かが破損したのか分らず困っています。。 WinXpSP2 Excel2003SP2 です。 セルに数字を入力します。たとえば「100」とします。 入力時は「100」と表示されています。 そのセルを選択して、書式>表示形式で「通貨」を選択、記号に「$」を選択します。その時点でサンプルの表示は「$\100」となります。 そのままOKを選択するとサンプル表示のままセルに表示されます。 一度、そのセルに対して、編集>クリア>書式 としてからもう一度、通貨の設定をしてみたのですが、結果は同じでした。 ただ、これは「$」を選択した時だけ起きるようで、ユーロなど選択しても「\」はでてきません。 新規ブックでも同じです。 「$」と数字だけで表示させたいのです。どうしたらいいでしょうか?なにとぞよろしくお願いします。

  • EXCEL VBA シート内の特定のセルに値が入…

    EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。

  • 演算結果の正負記号の表示について

    表題のとおりですが、 エクセル2000で引算の結果、黒字なら「+」、赤字なら「-」と数字の前に表示したいのです。 つまり、演算結果欄の「セルの書式設定」⇒表示形式⇒その他⇒正負記号で (+、=、△;-、=、▲)を+、-に変更したいのです。(現状はサンプル △) よろしくお願いします。

  • 【Excel】 条件によって日付にしたい

    セルに値が入力されていますが、 40000以上の場合、表示形式を「日付」に、 それ以下なら「標準」で、表示したいのです。 条件付書式では、表示形式は設定できません。 良い方法はないでしょうか。 Excel2003でも対応できるように、お願いします。

  • Excelについての質問です

    Excelについての質問です 使っているソフトはMicrosoftExcel2007です セルに1という値を入力すると0.01と値が表示されてしまいます セルの書式設定から表示形式の分類を標準に変えてもダメでした ちなみに1と入力したはずのセル上でセルの書式設定を選ぶとサンプルが0.01になっていたことが私は気になっています よろしくお願いします

  • Excel2008 for Macで日付の値が、欧米表示に置き換わってしまう

    Microsoft Excel 2008 for Macで質問です。 別のMicrosoft Excel 2008 for Macで作成したExcelブックを開くと、 すでに「2009.09.01」と日付が入力されているセルの値が、 「09/01/2009(月/日/年号)」という欧米で良く使われる形式に 置き換わってしまう現象が起こりました。 具体的には、仮に【A】というMacのExcel2008で 「2009.09.01」という値をセルに入力し、 それを別の【B】というMacのExcel2008で開くと、 同じセルの値が「09/01/2009」となってしまっているということです。 セルには「dd"日("aaa)」の書式設定が設定されていて、 セルの表示自体は「1日(火)」と【A】【B】とも同じく 表示されていますが、元の入っている値の形式が 【A】2009.09.01 【B】09/01/2009 となって違うのは、なぜでしょうか? Excelの中の環境設定を見ても、特にそれらしき設定が変更できる 箇所はなく、原因がわかりません。 ちなみに、【B】のMacのExcelで、「dd"日("aaa)」の 書式設定されている空白セルに「2009.09.01」と入力しても、 日付とは認識されず、文字列として、そのまま「2009.09.01」と 表示されてしまいます。 何か原因がおわかりでしたら、お教えください。

    • 締切済み
    • Mac