| 
    
     |  | ▼UO3 さん: 
 おはようございます。
 そうですよね。。。こんなに長いコードから絞り込むのは難しいですよね。
 無理を言ってしまいすみませんでした。
 
 ではここだけでもよろしいでしょうか。
 
 Dim dicA As Object
 Dim dicB As Object
 Dim dicAonly As Object
 Dim dicBonly As Object
 Dim d As Variant
 Dim colA() As Variant
 Dim colB() As Variant
 Dim shA As Worksheet
 Dim shB As Worksheet
 Dim c As Range
 Dim vntTitleA As Variant
 Dim vntTitleB As Variant
 
 ここと
 
 headStr = vbTab & Join(WorksheetFunction.Index(sh.Range("A1", sh.Cells(1, sh.Columns.Count).End(xlToLeft)).Value, 1, 0), vbTab) & vbTab
 
 With CreateObject("VBScript.RegExp")
 x = UBound(vntT) + 1
 For x = 1 To x
 ck = vntT(x - 1)
 .Pattern = vbTab & "(" & ck & ")" & vbTab
 With .Execute(headStr)
 If .Count = 0 Then
 z = 0
 Else
 n = .Item(0).firstindex + 1
 wStr = Left(headStr, n)
 z = Len(wStr) - Len(Replace(wStr, vbTab, ""))
 End If
 End With
 
 If z = 0 Then
 MsgBox sh.Name & "のタイトル行に" & ck & "がないので処理を終了します"
 Exit Function
 End If
 v(x) = z
 sh.UsedRange.Columns(z).Interior.ColorIndex = xlNone
 Next
 End With
 
 GetCol = True
 
 End Function
 
 
 ここだけでも。全体ではなく大切な所だけで結構ですので。。。
 よろしくお願いします。
 
 |  |