Я работал над созданием AddIn корыта VBA , я записал код на листе Excel, когда сохранял его, я сохранил как текст:
Attribute VB_Name = "Module_Name"
И вы должны быть уверены, что ваш .bas файл на самом деле представляет собой простой текст.
Я работал над созданием AddIn с VBA кодом. Я записал код в лист Excel, когда сохранял его, я сохранил текст следующим образом:
Sub Superheroes()
Dim sBeg as string, sEnd as String, sCatwoman as String, sAntMan as String
Dim vCode As Variant
'' Here is where i put the name i want to call my module
sBeg = "Attribute VB_Name = ""VBA_BasFile""" + vbCrLf + _
"Private Function fMix(sAnimal as String)as String "
sCatwoman = "Select case sAnimal"+ vbCrLf+ vbTab+"case ""cat"""+ _
vbCrLf+ vbTab+ "fMix = ""Catwoman"""
sAntMan = vbCrLf+ vbTab+"case ""Ant"""+ vbCrLf+ vbTab+ "fMix = ""AntMan"""+ _
vbCrLf+ "End Select"
sEnd = vbCrLf+ "End Sub"
vCode = Array(sBeg, sCatwoman, sAntMan, sEnd)
Workbooks.add
Range("A1").Resize(UBound(vCode) + 1, 1) = Application.Transpose(vCode)
With ActiveWorkbook
.SaveAs path + "VBA_BasFile.bas", xlTextPrinter
.Close False
End With
End Sub
С этим я могу Вызвать любую процедуру или функцию в VBA_BasFile при импорте в другую книгу Excel.