今、社内ツールの改修を行っていて、契約終了日が近づいた契約名のセルの背景の色が変わるようなプログラムを作成し、その後色が変わったセルの色を元に戻したいと考えています。
ちなみに契約終了日が近づいた契約名のセルの背景の色が変わる動作までは出来ています。
どのサイトでも実行したものを元に戻せないと書いてあり、改修を依頼してきた上司も新しいボタンを作成して登録するしかないと言っており、困っています。
新しいボタンで登録できるのならその方法を、既存のプログラム中に組み込めるならその方法を教えて頂きたいと思います。
使っている物です。
Windows2010
Excel2013
’Sub 契約終了日確認()
' 契約終了日確認 Macro
'行いたい事:今日から契約終了年月日まで60日を切っている契約名を表示させる。
'①:msgboxで今日の日付を返す。
'②:契約終了日から今日の日付を引く。
'③:60日を切っていたらその契約名をmsgboxに載せる。
Dim ws As Worksheet Dim fname As String Dim 既存ファイル名 As String Dim 保存ファイル名 As String Dim 契約終了日 As Long Dim 終了日まで As Long Dim 確認 As Variant
Dim 契約名 As String '契約終了日が60日を切っている契約名を載せる
Dim ah As Range Dim aj As Range Dim al As Range
Worksheets("使うシート名").Select
Dim enddate As Date
Dim i As Integer
For i = 6 To 65
enddate = DateSerial(Range("AH" & Format(i)), Range("AJ" & Format(i)), Range("AL" & Format(i)))
'MsgBox Date
MsgBox enddate 'ここで契約終了日から今日の日付を引いて60日未満の契約名を載せたい。
'MsgBox todaydate - Date
If (enddate - Date) < 60 Then
Range("O" & Format(i)).Interior.Color = RGB(200, 200, 200)
End If
Next
End Sub’
VBAは勉強を始めてからあまり日が経っていません。
皆様のお力をお借りしたいと思っています。
よろしくお願い致します。
|N列 |O列 |P列|
|会社メールアドレス|契約名|契約分野|
| |色、表示無し|色、表示無し|
| |色付き|色無し、13158600
| |色無し|色無し、表示無し|
| |色付き|色無し、13158600|
ここから下は
| |色付き|色無し、13158600|の表示になります。
’Sub 契約終了日確認()
'契約終了日確認 Macro
'行いたい事:今日から契約終了年月日まで60日を切っている契約名を表示させる。
'①:msgboxで今日の日付を返す。
'②:契約終了日から今日の日付を引く。
'③:60日を切っていたらその契約名をmsgboxに載せる。
Dim ws As Worksheet
Dim fname As String
Dim 既存ファイル名 As String
Dim 保存ファイル名 As String
Dim 契約終了日 As Long
Dim 終了日まで As Long
Dim 確認 As Variant
Dim 契約名 As String '契約終了日が60日を切っている契約名を載せる
Dim ah As Range
Dim aj As Range
Dim al As Range
Worksheets("シート名").Select
Dim enddate As Date
Dim i As Integer
For i = 6 To 65
enddate = DateSerial(Range("AH" & Format(i)), Range("AJ" & Format(i)), Range("AL" & Format(i)))
MsgBox enddate 'ここで契約終了日から今日の日付を引いて60日未満の契約名を載せたい。
'MsgBox todaydate - Date
If (enddate - Date) < 60 Then
Range("P" & Format(i)).Value = Range("O" & Format(i)).Interior.Color '元の色を隣(P列)のセルに保存。
Range("O" & Format(i)).Interior.Color = RGB(200, 200, 200) 'セルに色を付ける
End If
Next
Dim rowNo As Integer '色を変えるセルの行番号を入れる変数
Range("O" & rowNo).Interior.Color = Range("P" & rowNo).Value 'セルに色を付ける
End Sub’
コードも掲載しておきます。

回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/05 07:14