'対応1:Winmergeのソースで直す。
'対応2:レポートの生成のHTMLをjQuery等で書き換える。
'対応3:レポートの生成のHTMLをexcelのvbaで、ハイパーリンクを削除する。
'対応4:レポートの生成のHTMLをexcelのvbaで、列を削除挿入して行番号を出力する。
'対応3と対応4をやってみた。(おまけ)エクセルの印刷はワードの段組がおすすめです。
'対応4:相違のある箇所だけの表示 (Diffコンテキスト)>メニューの【表示 → Diffコンテキスト】から、比較結果の表示範囲を限定できます。
'http://so-zou.jp/software/tech/tool/diff/winmerge/compare/file.htm#no3
'使えない事がわかりました。
'対応3--------------------------------------------------------------------------------------
Sub aaa_Winmerge_行番号を表示ON_ツール_レポートの生成_エクセルで開く_実行用()
Call ハイパーリンクSubAddressを削除
Call 罫線を引く
Cells(1, 1).Select
End Sub
Sub ハイパーリンクSubAddressを削除()
'https://teratail.com/questions/47790
With Range("A1").SpecialCells(xlLastCell)
MaxRow = .Row
MaxCol = .Column
End With
For i = 1 To MaxRow
For j = 1 To MaxCol
With Cells(i, j)
If .Hyperlinks.Count > 0 Then
If .Hyperlinks(1).SubAddress <> "" Then
Cells(i, j).ClearHyperlinks
Cells(i, j).Select
Call フォント直し
Cells(i, j) = Replace(Cells(i, j), "0.", "")
End If
End If
End With
Next
Next
End Sub
Sub フォント直し()
With Selection.Font
.Name = "Arial Unicode MS"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
Sub 罫線を引く()
ActiveSheet.Cells.Borders.LineStyle = False
With ActiveSheet.UsedRange
.Borders.LineStyle = True
.BorderAround Weight:=xlContinuous
.Rows(.Rows.Count).BorderAround Weight:=xlContinuous
End With
End Sub
'対応4--------------------------------------------------------------------------------------
Sub aaa_Winmergeレポートの生成をエクセル修正()
Dim MaxRow As Long
With Range("A1").SpecialCells(xlLastCell)
MaxRow = .Row
End With
Call 列を削除挿入(1)
Call 連番入力(1, MaxRow)
Call 列を削除挿入(3)
Call 連番入力(3, MaxRow)
Call 罫線を引く
Call 列幅を自動調整
Cells(1, 1).Select
End Sub
Sub 列を削除挿入(i As Long)
Columns(i).Select
Selection.Delete Shift:=xlToLeft
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Sub 連番入力(iRetu As Long, MaxRow As Long)
Dim k As Long
k = 0
For i = 2 To MaxRow
If Cells(i, iRetu + 1) = "" Then
Else
k = k + 1
Cells(i, iRetu) = k
End If
Next
End Sub
Sub 罫線を引く()
ActiveSheet.Cells.Borders.LineStyle = False
With ActiveSheet.UsedRange
.Borders.LineStyle = True
.BorderAround Weight:=xlContinuous
.Rows(.Rows.Count).BorderAround Weight:=xlContinuous
End With
End Sub
Sub 列幅を自動調整()
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
More than 5 years have passed since last update.
Winmergeのレポートの生成をエクセルで開くと、行番号にハイパーリンクが追加される事があります
Last updated at Posted at 2016-09-14
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
00