You must already start MicroStation before you press the button at the Excel Sheet.
Here is the VBA-code
Sub Koordinater_till_dgn()
'© 2009-03-24 Lars-Erik Svensson
' Macro som skriver koordinater till dgn sammanbinder med smartline
Dim myMSAppCon As MicroStationDGN.ApplicationObjectConnector
Dim myMSApp As MicroStationDGN.Application
Set myMSAppCon = GetObject(, "MicroStationDGN.ApplicationObjectConnector")
Set myMSApp = myMSAppCon.Application
Dim mydgn As DesignFile
Dim myModel As ModelReference
Set mydgn = myMSApp.ActiveDesignFile
Set myModel = myMSApp.ActiveModelReference
myMSApp.Visible = True
'---------------------------------------------------------------------
' Variabler för Excel
' Dim myExcel As Excel.Application
' Dim mySheetA As Worksheet
' Kopplar upp Excel och väljer INData-bladet
' Set myExcel = GetObject(, "Excel.Application")
' Set mySheetA = myExcel.ActiveWorkbook.Worksheets("Koordinater")
' Variabler för Koordinater
Dim n As Integer
Dim r As Integer
Dim Rad As Integer
Dim AntPkt As Variant
Dim Pktnr As String
Dim Xkord As Variant
Dim Ykord As Variant
Dim Zkord As Variant
Dim Antp As Integer
'Hitta radnumret för sista använda cellen i kolumnen
r = Worksheets("Koordinater").Cells(65536, "A").End(xlUp).Row
' Antal punkter
Antp = r - 2
'Debug.Print r
' Sätter värdet på n till 0
n = 0
' Variabler för MicroStation
Dim MYline As LineElement
Dim myText As TextElement
Dim TextPkt As Point3d
Dim rotMatrix As Matrix3d
' Variabel som sätter för flera punkter
Dim MinaPkt() As Point3d
' Här sätts det hur många punkter den skall rita To
ReDim MinaPkt(0 To (Antp))
' Hämtar in antal punkter från Excel
For Each AntPkt In Worksheets("Koordinater").Range("A2:A" & r)
Rad = AntPkt.Row
'Hämtar indata från Excel
Pktnr = Worksheets("Koordinater").Range("A" & Rad)
Xkord = Worksheets("Koordinater").Range("B" & Rad)
Ykord = Worksheets("Koordinater").Range("C" & Rad)
Zkord = Worksheets("Koordinater").Range("D" & Rad)
' Sätter i koordinater för linjen och uppdaterar antal n
MinaPkt(n).X = Xkord
MinaPkt(n).Y = Ykord
MinaPkt(n).Z = Zkord
' Sätter in koordinater för texten.
TextPkt.X = Xkord
TextPkt.Y = Ykord
TextPkt.Z = Zkord
'Set myText = CreateTextElement1(Nothing, "Pkt" & n + 1, TextPkt, rotMatrix)
Set myText = CreateTextElement1(Nothing, Pktnr, TextPkt, rotMatrix)
ActiveModelReference.AddElement myText
' Debug.Print Pktnr; vbTab; Xkord; vbTab; Ykord; vbTab; Zkord
'Stegar upp n med ett steg för varje punkt
n = n + 1
Next
Set MYline = CreateLineElement1(Nothing, MinaPkt)
ActiveModelReference.AddElement MYline
'Skriver till inforaderna i MicroStation
ShowCommand "© LES: VBA "
ShowPrompt "Koodinater till MicroStation från Excel, Skapat från Excel"
ShowStatus "Linjen är nu uppritad "
'---------------------------------------------------------------------
Set myMSApp = Nothing
Set myMSAppCon = Nothing
End Sub