• ベストアンサー

オートシェイプの○に条件付きで色付けできますか??

Sheet1の複数のセルには日付が入っています。 これらには、条件付き書式で色付けするよう設定しています。 ・過ぎると赤   ・残り半年で黄   ・その他、青 この色付けを別のSheet2に作ったオートシェイプの楕円に同じように色付けしたいんです・・・・。 連動して色付けすることは可能でしょうか?? 実際は100箇所以上あります。 どなたかできるかたよろしくお願いします!! 2003エクセルです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

わざわざオートシェープを利用して色分けする意味がわからないのですが(私なら別シートのセルを色付けする方法を採用します)、参考までにサンプルコードを提示します。 A6セルに日付が入力されていて、A6セルとの期間が180日以上あるならオートシェープの塗りつぶしを青、0日以上なら黄色、それ以外は赤にする条件で、この日付セルに対応するオートシェープの名前が例えば「楕円3」なら(オートシェープを選択したとき、画面左上の名前ボックスで確認)、このシートでシート名を右クリックして「コードの表示」で以下のようなコードを貼り付けてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myD As Long myD = Date - Range("A5").Value Select Case myD Case Is > 180 ActiveSheet.Shapes("Oval 3").Fill.ForeColor.SchemeColor = 4 Case Is > 0 ActiveSheet.Shapes("Oval 3").Fill.ForeColor.SchemeColor = 5 Case Else ActiveSheet.Shapes("Oval 3").Fill.ForeColor.SchemeColor = 10 End Select End Sub

otoichihr
質問者

お礼

 ありがとうございました!! なんとかできました!!これからすべての箇所を設定していきます。 これで思うようにいきそうです。ありがとうございました。

otoichihr
質問者

補足

 すみません・・・。  うまくいきません。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

条件付き書式などのエクセルの一般機能でオートシェープに色を付けることはできません。 どのような目的で、オートシェープの色を変更したいのかわからないのですが、このような場合はマクロを利用することになります。 しかし、100か所以上色付けをしたいというのであれば、セル位置とオートシェープの名前との対応が規則的である場合以外は、力技ですべてのケースに対応するコードを記述する必要がありますので、ほとんど実用的ではありません。 マクロで対応する場合を含めて、皆さんから代替案が提示される可能性もありますので、オートシェープで色を変更したい目的やセル位置の関係などを、できる限り具体的に例示されてみてはいかがでしょう。

otoichihr
質問者

補足

アドバイスありがとうございます。 現在、sheet1に部品の交換日を入力してそこから交換時期を表示して管理しています。 これを別のsheet2に作った図面の部品箇所に手動で色付けして、各部品の交換時期の 状況を見やすくしているわけですが、sheet1の内容が変更されるたびに自分でsheet2のオートシェイプで作った○を色付けしているのを何とか自動でできないかと思いまして。自分の知識では、 まだまだ、教わったVBAのコードをちょこちょこいじるくらいで、全然わかりません・・・・・。 はたしてこれが可能なのかもよくわからないので、わかる方よろしくお願いします!!

関連するQ&A