バックアップが必要な理由
ニッチな話題で申し訳ないんですが、Excelの条件付き書式。
特にVBAでソースコード書いているときなんか、コンパイルしようとしただけのつもりなのにExcelが強制終了!ってことがままあります。
こまめに保存している人はあまり苦しくないでしょうが、考えに考え抜いて書いたソースをコンパイルしたら強制終了するって賽の河原かな???
で、そのときのためのバックアップファイルをExcelさんが自動的にとってくれる機能がありますよね。
でも、この保存機能をもって復元されたファイルが、たま~~~に、
一部の条件付き書式を削除する
っていう始末の悪いことしてくることがあります。
なので、条件付き書式はバックアップとっておこうね。って話です。
条件付き書式のバックアップ方法
私が携わっている業務では、マクロのソースコードはテキストファイルに出力してGitにコミットしてます。
なので、ここで条件付き書式や名前定義なんかも出力するようにして、最近では簡易的なコンパイラも作ったりしてます。
まぁうちは条件付き書式は塗りつぶしくらいしか使わないので、出力もそれに特化してます。
というわけでこんな感じ。
Option Explicit
Private Sub SaveFormatConditions(wActiveWorkbook As Workbook)
Dim strExportLine() As String
Dim ws As Worksheet
Dim item As FormatCondition
ReDim strExportLine(0)
For Each ws In wActiveWorkbook.Worksheets
For Each item In ws.Cells.FormatConditions
ReDim Preserve strExportLine(UBound(strExportLine) + 1)
strExportLine(UBound(strExportLine)) = ws.CodeName & vbTab _
& item.AppliesTo.Address(False, False) & vbTab _
& item.Formula1 & vbTab _
& "RGB(" & (item.Interior.Color \ 256 ^ 0) Mod 256 & "," _
& (item.Interior.Color \ 256 ^ 1) Mod 256 & "," _
& (item.Interior.Color \ 256 ^ 2) Mod 256 & ")"
Next item
Next ws
Call WriteTextFile(wActiveWorkbook.FullName & "." & "条件付き書式.txt", strExportLine)
End Sub
Private Sub WriteTextFile(strPath As String, aryValues() As String)
Dim nCh As Long
Dim i As Long
nCh = FreeFile
Open strPath For Output As #nCh
For i = 1 To UBound(aryValues)
Print #nCh, aryValues(i)
Next i
Close #nCh
End Sub
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。