- ベストアンサー
エクセルで、セルA1が1のときオブジェクトの線を出すには?
エクセルで、 A1が1のときは、 H19,G20、F21にまたがる斜めの線(羅線ではなく、オブジェクトの線)が出て、 A1が2のときは、 線が出ないようにするにはどのようにすればよいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No3 merlionXXです。 > というようにするにはどうしたらよいでしょうか? 「補足欄」に書かれてもこちらには通知がこないので追加質問に気づきませんでした。 追加質問があるなら今後は「お礼欄」に書いた方がいいですよ、回答者にメールで通知がきますから。 線Aというのが "直線 1" 線Bというのが "直線 2" という名前であれば、以下のようにしてみてください。名前がちがっていたらコードを修正してください。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Me.Shapes("直線 1").Visible = (Target.Value = 1) Me.Shapes("直線 2").Visible = (Target.Value = 2) End Sub
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
もうオブジェクトの線は設置してあるのですね? その線の名前が「直線 1」だとしたら、以下の手順をおためしください。 1.該当のワークシートのタブを右クリックし、「コードの表示」を選択。 2.出てきたVisual Basic Editor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Me.Shapes("直線 1").Visible = (Target.Value = 1) End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。
補足
ありがとうございます。できました。 そこで、線A、線Bという離れた場所に2本の線があって、 セルA1が1なら線Aが出て、線Bは消える。 セルA1が2なら線Aが消え、線Bが出る。 というようにするにはどうしたらよいでしょうか?
- web2525
- ベストアンサー率42% (1219/2850)
Private Sub Worksheet_Change(ByVal Target As Range) シート内に変更が有った場合自動的に実行するマクロ 詳しい説明は http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040727.html このあたりで確認してください。
- web2525
- ベストアンサー率42% (1219/2850)
マクロで If Range("A1") = 1 Then ActiveSheet.Shapes("Line 1").Select Selection.ShapeRange.Line.Visible = msoTrue ElseIf Range("A1") = 2 Then ActiveSheet.Shapes("Line 1").Select Selection.ShapeRange.Line.Visible = msoFalse End If こんな感じでは?
補足
お答えいただきありがとうございます。 マクロの本文はわかりましたが、この後具体的にどうすればよいでしょうか?
お礼
お答えいただきありがとうございました。 私の質問が悪くて、やりたいことがうまくできませんでした。 また後で改めて質問します。