- ベストアンサー
ExcelのVBAを使用して自動で斜線を引く方法
Excelで、VBAを使用して、一定の条件の場合に、自動で斜線を引く・消去するための数式の構成を教えて頂けないでしょうか。 具体的には、次の様な条件になります。 1・同じブックの別のワークシートである「sheet1」のD3を参照する 2・D3が「空白」であった場合、同じブックの「sheet2」の「a1からc1を結合したセル」に斜線を引く 3・D3に「○」が入力された場合は、斜線を引かない(消去する) どうぞ、よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず御質問の機能を持たせたいExcelbookを開いて下さい。 次に、[Alt]キーを押しながら[F11]キーを押して下さい。 すると「Visual Basic for Applications」ウインドウが開きますので、その左側の方に表示されている「プロジェクト エクスプローラ」(「プロジェクト - VBAProject」と記されている画面)の中にある[Sheet1]と記されている箇所をダブルクリックして下さい。 次に、「Visual Basic for Applications」ウインドウの右側の方に表示されている「コード ウィンドウ」(一番広い画面)の左上にある[(General)]と記された箇所をクリックし、現れた選択肢の中にある[WorkSheet]を選択してクリックして下さい。 次に、「コード ウィンドウ」の中に次のVBAの構文を入力して下さい。 Private Sub Worksheet_Change(ByVal Target As Range) 'QNo.8956473 ExcelのVBAを使用して自動で斜線を引く方法 Dim InputCell, OutputSheet, OutputCell As String Dim myOnOff As Integer InputCell = "D3" '線を引く・消去の基準となるデータが入力されるセル OutputSheet = "Sheet2" '線を引く・消去を行うセルが存在するシート OutputCell = "A1" '線を引く・消去を行うセル Select Case Range(InputCell).Value Case "" myOnOff = xlContinuous Case "○" myOnOff = xlNone Case Else Exit Sub End Select With Sheets(OutputSheet).Range(OutputCell) .Borders(xlDiagonalUp).LineStyle = myOnOff .Borders(xlDiagonalDown).LineStyle = myOnOff End With End Sub これで、Sheet1のD3セルに入力されている値が書き換えられて空欄になった場合には、Sheet2のA1セルを含んでいる結合セルにX字形に斜めの罫線が引かれ、Sheet1のD3セルに入力されている値が「○」に書き換えられた場合には、Sheet2のA1セルを含んでいる結合セルに引かれた斜めの罫線が消去されます。 又、Sheet1のD3セルに入力されている値がそれ以外のものである場合には何も起こりません。