
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) エクセルの条件付き書式 3 2022/05/08 03:17
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Visual Basic(VBA) エクセル関数のことで質問です。 別シートセルから値をもってくるように関数を設定しているときに、 別シ 3 2023/01/31 14:10
- Excel(エクセル) excelのindirect関数の別ブック参照について質問です。 1 2022/06/03 15:17
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報