- 締切済み
Excel 条件付き書式設定について
Excelで条件付き書式設定のアイコンセットを使用したいです。 M行N列がM行N-1列の数値より10%以上多い:↑、±10%未満の差:→、10%以上少ない:↓ としたい場合、書式ルールの編集で下記何を選択してどのように入力すれば良いでしょうか。 例としてA1~A10に1期目の数字があり、B1~B10に2期目の数字、C1~C10・・・とします。 (1)ルールの種類 (2)値、種類
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 条件付き書式の「アイコンスタイル」の矢印は相対参照の式は使えないみたいですね。 すなわち1セルずつ条件付き書式を設定してやる必要があるみたいです。 それでは大変なので、代替案としてVBAでオートシェイプの矢印をセルに表示させる方法です。 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim c As Range If Selection(1).Column = 1 Then MsgBox "2列目以降を範囲指定してください。" Exit Sub End If ActiveSheet.Lines.Delete For Each c In Selection Select Case c.Value Case Is >= c.Offset(, -1) * 1.1 With ActiveSheet.Shapes.AddLine(c.Left + (c.Width / 10) * 2, c.Top + (c.Height / 10) * 9, _ c.Left + (c.Width / 10) * 2, c.Top + c.Height / 10).Line .ForeColor.RGB = vbBlue .Weight = 3 .EndArrowheadStyle = msoArrowheadTriangle .EndArrowheadLength = msoArrowheadShort .EndArrowheadWidth = msoArrowheadNarrow End With Case Is > c.Offset(, -1) * 0.9 With ActiveSheet.Shapes.AddLine(c.Left + c.Width / 10, c.Top + c.Height / 2, _ c.Left + (c.Width / 10) * 3.5, c.Top + c.Height / 2).Line .ForeColor.RGB = vbGreen .Weight = 3 .EndArrowheadStyle = msoArrowheadTriangle .EndArrowheadLength = msoArrowheadShort .EndArrowheadWidth = msoArrowheadNarrow End With Case Else With ActiveSheet.Shapes.AddLine(c.Left + (c.Width / 10) * 2, c.Top + c.Height / 10, _ c.Left + (c.Width / 10) * 2, c.Top + (c.Height / 10) * 9).Line .ForeColor.RGB = vbRed .Weight = 3 .EndArrowheadStyle = msoArrowheadTriangle .EndArrowheadLength = msoArrowheadShort .EndArrowheadWidth = msoArrowheadNarrow End With End Select Next c End Sub ※ 必ず範囲指定したのちにマクロを実行してください。 ※ データ変更があるたびにマクロを実行する必要があります。 尚、空白セルは考慮していません。m(_ _)m
- nishi6
- ベストアンサー率67% (869/1280)