áûë âûáðàí õîòÿ áû îäèí
Ëèñòèíã 3. Òåêñò ìîäóëÿ êîäà PivotVBP.
Attribute VB_Name = “PivotVBP”
Option Explicit
Sub CreateVBProjCrossRef()
‘óñòàíîâêà çàãîëîâêîâ òàáëèöû
SetUpHeadings
‘ LoadProjectFile ôîðìèðóåò èñõîäíóþ
‘ òàáëèöó êîìïîíåíòîâ è âîçâðàùàåò ðåçóëüòàò
If LoadProjectFile Then ‘åñòü õîòÿ áû îäèí ïðîåêò
‘ôîðìèðîâàíèå ñâîäíîé òàáëèöû
CreatePivotTable
End If
End Sub
Sub SetUpHeadings()
Selection = “Ïðîåêò”
Selection.Offset(0, 1) = “Òèï”
Selection.Offset(0, 2) = “Ôàéë”
Selection.Offset(1, 0).Select
End Sub
Function LoadProjectFile() As Boolean
‘ Ôîðìèðîâàíèå â öèêëå èñõîäíîé òàáëèöû
‘ êîìïîíåíòîâ ïðîåêòîâ.
‘ Çíà÷åíèå ôóíêöèè ïðè âûõîäå:
‘ True - áûë âûáðàí õîòÿ áû îäèí ôàéë ïðîåêòà
‘ False - íåò íè îäíîãî ôàéëà
Dim File, FileDet, FileNum%, txt$, Project$
Dim ProjectPath$, Path$
Dim Files As New Collection
‘
LoadProjectFile = False
Do
Set Files = New Collection
‘ âûâîäèò äèàëîãîâîå îêíî äëÿ âûáîðà ôàéëà ïðîåêòà
File = Application.GetOpenFilename( _
FileFilter:=”VB Project Files(*.mak;*.vbp), _
*.mak;*.vbp”, Title:=”Çàãðóçèòü ôàéë VB-ïðîåêòà”)
‘ åñëè ïîëüçîâàòåëü íàæàë Cancel - âûõîä èç ïðîöåäóðû
If File = False Then Exit Do
‘
ProjectPath$ = File
Call FileNameTest(ProjectPath$, Path$, Project$)
FileNum% = FreeFile
Open File For Input As FileNum%
Input #FileNum%, txt$
‘ îïðåäåëÿåò, êàêîé òèï ôàéëà áûë îòêðûò, à çàòåì
‘ âûçûâàåò ñîîòâåòñòâóþùóþ ïðîöåäóðó
If InStr(txt$, “=”) Then ‘ VBP-ôàéë
Call LoadVBP(FileNum%, Project$, Files)
Else
Seek FileNum%, 1 ‘ MAK-ôàéë
Call LoadMAK(FileNum%, Project$, Files)
End If
‘ ïîìåùàåò èíôîðìàöèþ èç ôàéëà ïðîåêòà â
‘ êîëëåêöèþ Files, à çàòåì èç êîëëåêöèè Files
‘ â ýëåêòðîííóþ òàáëèöó
For Each File In Files
For Each FileDet In File
Selection = FileDet
Selection.Offset(0, 1).Select
Next
Selection.Offset(1, -3).Select
Next
LoadProjectFile = True
Loop
End Function
Private Sub LoadMAK(FileNum%, Project$, Files)
Dim txt$, FileType$
‘ âûáîðêà îïèñàíèé êîìïîíåíòîâ èç MAK-ôàéëà
‘ (äî VB3 âêëþ÷èòåëüíî) è ôîðìèðîâàíèå êîëëåêöèè Files
Ñîäåðæàíèå Íàçàä Âïåðåä