Con la misma tecnica que se utiliza para hacer ledger (tipo zebra), se puede simular unas lineas verticales como separador de columnas
Pone un listview 6 y un picture en un formulario
Option Explicit
Private Sub Form_Load()
InitListView
VerticalLines
End Sub
Private Sub InitListView()
Dim i As Long
Dim lvi As ListItem
With ListView1
.ListItems.Clear
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Col 1"
.ColumnHeaders.Add , , "Col 2"
.ColumnHeaders.Add , , "Col 3"
.ColumnHeaders.Add , , "Col 4"
.View = lvwReport
End With
For i = 1 To 100
Set lvi = ListView1.ListItems.Add()
lvi.Text = i
lvi.SubItems(1) = i
lvi.SubItems(2) = i
lvi.SubItems(3) = i
Next
End Sub
Private Sub VerticalLines()
Dim i As Long
If ListView1.View <> lvwReport Then Exit Sub
If ListView1.ListItems.Count = 0 Then Exit Sub
With Picture1
.AutoRedraw = True
.Visible = False
.BackColor = vbWhite
End With
With ListView1
.PictureAlignment = lvwTile
Picture1.Cls
Picture1.Width = .Width
Picture1.Height = Screen.Height
For i = 1 To .ColumnHeaders.Count
Picture1.Line (i * .ColumnHeaders(i).Width, 0)-(i * .ColumnHeaders(i).Width, Picture1.ScaleHeight), vbRed
Next
Picture1.Refresh
Set .Picture = Picture1.Image
End With
End Sub
No olvidar que si se cambia el ancho de alguna columna se debe volver a crear los separadores
