いつもお世話なっております。
今回はMSHFlexGrid を使用して、指定したセルへの色塗りについて
質問させていただきます。
SQLサーバからデータを取り、MSHFlexGridに貼り付けた後、
第5列目の一行から終わりまでのデータと比べて、30日間が経った場合、
その行の色を赤にしたいのですが、その第5列目の一行から終わりまでのデータの設定仕方について、いわゆるIf mydate - x > 30 Then のxの設定について、どなたが教えて頂けませんか。
宜しくお願いいたします。
ソースは以下となります。
***************************************************************
Dim mydate
mydate = Format(Now, "yyyymmdd")
Dim i As Integer
Dim j As Integer
For i = myGrid1.FixedCols To myGrid1.Rows - myGrid1.FixedRows
For j = myGrid1.FixedCols To myGrid1.Cols - myGrid1.FixedRows
myGrid1.Row = i
myGrid1.Col = j
If mydate - x > 30 Then
myGrid1.CellBackColor = QBColor(12)
' myGrid1.Enabled = False
' myGrid1.Enabled = True
' Else
' 色を非表示
' myGrid1.CellBackColor = 0
End If
Next j
Next i
以下では如何ですか?
なお myGrid1 は With myGrid1 を使用した方が良いのでは。
x = myGrid1.TextMatrix(i, j)
xの宣言が有りませんね。
但し日時の計算をする為には
一部、下記該当箇所を変更して
Dim x_moji As String <=== 追加
mydate = Format(Now, "yyyy/mm/dd") <=== 修正
各行の第5列目のセルの値の取得
x_moji = Format(myGrid1.TextMatrix(i, 4),"yyyy/mm/dd")
If Datediff("d",mydate,x_moji) > 30 Then
.....の方が良いと思われますが。
tuyuakeさん、ご返答ありがとうございます。
myGrid1.TextMatrixでxの設定ができました。
また、日付の計算について、いい勉強になりました。
どうもありがとうございました。
助かりました。
ツイート | ![]() |