
A B ◎ $B2-$A2>=5
1 原価 売価 〇 $B2-$A2>=3
2 95 ◎100 △ $B2-$A2>=1
3 88 △90 × $B2-$A2>=0
エクセル2010で、B列に数値を入力すると、隣のセルとの差額に応じて4種類の記号がつくように条件付き書式を設定しようとしたところ、アイコンセットでは相対参照はできないとエクセルさんにはじかれてしまいました。
そこで、マクロでも関数でもいいので、同一セルに視覚的にわかりやすい記号をくっつける術を伝授していただきたいです。
元々のシートの都合上、列の挿入はできないのがネックなのですが、可能でしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.1・3です。
>一応ですが、適用箇所を替えるにはどこをどのように変えればよいか・・・
No.3のコード内の
>If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
でA・B列以外または複数セルの変化は何もしない。
>If .Row > 1 Then
で変化セルが2行目以降の場合・・・
としているので、結局A・B列の2行目以降の変化にだけ対応します。
具体的な範囲が示されていないので、的確なお答えできませんが・・・
適応個所は
>Range("A:B")
の部分で変化させます。
この程度でごめんなさい。
※ 細かいエラー処理はしていません。
本来であれば入力が数値以外の場合等々のエラー処理をした方が良いと思います。m(_ _)m
No.3
- 回答日時:
No.1です。
投稿後気づきました。
前回の場合はその都度マクロを実行する必要がありますので、
チェンジイベントの方が向いていると思います。
画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A・B列にデータを入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row > 1 Then
If WorksheetFunction.Count(Cells(.Row, "A").Resize(, 2)) = 2 Then
Select Case Cells(.Row, "B") - Cells(.Row, "A")
Case Is < 0
Cells(.Row, "B").NumberFormatLocal = "G/標準"
Case Is >= 5
Cells(.Row, "B").NumberFormatLocal = "◎0"
Case Is >= 3
Cells(.Row, "B").NumberFormatLocal = "○0"
Case Is >= 1
Cells(.Row, "B").NumberFormatLocal = "△0"
Case Else
Cells(.Row, "B").NumberFormatLocal = "×0"
End Select
End If
End If
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
素晴らしい回答ありがとうございます!
これで行けそうです!
一応ですが、適用箇所を替えるにはどこをどのように変えればよいか教えていただければ幸いです
No.2
- 回答日時:
相対参照以外は問題ないということでよろしいですか?
相対参照にこだわるということは、コピーできないということでしょうか?
きちんとコピーペーストすれば反映されると思うのですが…
No.1
- 回答日時:
こんばんは!
VBAでの一例です。
B列数値がA列数値以上の限定です。
計算できるようにセルの表示形式の操作にしてみました。
A・B列に入る数値は整数だとします。
Sub Sample1()
Dim i As Long
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "B") - Cells(i, "A") >= 0 Then
Select Case Cells(i, "B") - Cells(i, "A")
Case Is >= 5
Cells(i, "B").NumberFormatLocal = "◎0"
Case Is >= 3
Cells(i, "B").NumberFormatLocal = "○0"
Case Is >= 1
Cells(i, "B").NumberFormatLocal = "△0"
Case Else
Cells(i, "B").NumberFormatLocal = "×0"
End Select
End If
Next i
End Sub
こんな感じではどうでしょうか?
※ 細かいエラー処理はしていません。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
エクセルで特定の文字が入って...
-
エクセルのまとめてカッコをつ...
-
WEEKDAY 空白も7になってしまう
-
Excelの特定のセルを1つおきに...
-
Excel 指定行までコピーをおこ...
-
数値の列から偶数のみを抽出す...
-
エクセルの関数
-
Excel 頭に「0」がついている...
-
Excel2013 カラースケールを別...
-
桁の違う数値での並び替え
-
Excelで%表示を全角にしたいの...
-
エクセルで直近の連続回数を求める
-
セル内文章から、英数字のみ取...
-
VLOOKUPのあいまい検索(スペー...
-
連続データを1行おきに貼り付け...
-
Excel 入力セル終端のデータを...
-
Excelの結合でA列とB列の内容...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
エクセルで特定の文字が入って...
-
エクセルのまとめてカッコをつ...
-
Excel 頭に「0」がついている...
-
数値の列から偶数のみを抽出す...
-
Excel 指定行までコピーをおこ...
-
桁の違う数値での並び替え
-
エクセルに入力した文字列に句...
-
Excelの特定のセルを1つおきに...
-
Excel強制終了
-
Excelのデータ間引きについて
-
Excel2013 カラースケールを別...
-
セル内文章から、英数字のみ取...
-
Excelの結合でA列とB列の内容...
-
excelで、1つのセルに入ってい...
-
ある列のセルに特定の文字が入...
-
エクセルで、数値の範囲で仕分...
-
WEEKDAY 空白も7になってしまう
おすすめ情報