PureBytes Links
Trading Reference Links
|
Hi,
The first EXCEL VBA procedure export all the WorkBook's macros code into
Word.
The second macro list all the procedures' names and the modules' names
into a new XL sheet.
Does it exist a way to export AFL formulas' names and associated code
and the layouts names and Charts' names loaded into AB, from AB to Word
or Excel ?
Best regards
'======================
Sub CopyToWord()
'Add reference "Microsoft Word X.0 Object Library")
'and "Microsoft Visual Basic For Applications Extensibility "
'L Longre
Dim VBC As VBComponent, W As Word.Application
Dim S As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo Fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set S = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
S.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
Fin:
W.ScreenUpdating = True
End Sub
'-----------------------------------
Sub ListMacrosModule()
'add référence :
'"Microsoft Visual Basic For Application Extensibility 5.3"
'michdenis
Dim Wbk As Workbook, Sh As Worksheet
Dim VBCodeMod As Object, Comp As Object, C As Object
Dim StartLine As Long, i As Long, ProcName As String
'Identifie le classeur source où sont les procédures
Set Wbk = Workbooks("VBAexemple2.XLS") 'ou ce que tu veux
'Détruit la feuille si elle existe déjà.
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("MesProcs").Delete
Application.DisplayAlerts = True
'Ajoute une feuille au projet où sera fait le listing
Set Sh = Wbk.Worksheets.Add
'Nomme la feuille
Sh.Name = "MesProcs"
i = 1
'Boucle sur toutes les modules du projet, incluant le formulaire.
For Each C In Wbk.VBProject.VBComponents
Set Comp = C
sds = C.Name
Set VBCodeMod = Wbk.VBProject.VBComponents(C.Name).CodeModule
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
Sh.Cells(i, 1).Value = .ProcOfLine(StartLine, vbext_pk_Proc)
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
Sh.Cells(i, 1).Offset(, 1).Value = .Name
StartLine = StartLine + 1
i = i + 1
Loop
End With
Next
Set VBCodeMod = Nothing: Set Comp = Nothing: Set C = Nothing
Set Wk = Nothing: Set Sh = Nothing
End Sub
'-----------------------------------
------------------------------------
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
amibroker-digest@xxxxxxxxxxxxxxx
amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|