Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

Excel VBA / Diverse / Office integration


Excel VBA fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i Excel VBA som fjernundervisning på www.vba-fjernundervisning.dk

 

VBA Training in English

Office integration

Det allerførste man skal gøre er, at etablere reference til objektsamlingen i det program, som man gerne vil arbejde samme med - det gør man i VBE i Tools menuen under References. Til Word hedder den "Microsoft Word 9.0 Object Library".

Kopier information fra Excel til Word (et dokument, der findes)

Ja, det kan gøres, som vist nedenfor

Sub CopyTableToWordDocument()
 Dim wdApp As Word.Application
 Range("A1:B6").Copy
 Set wdApp = New Word.Application
 With wdApp
  .Documents.Open Filename:="c:\test.doc"
  With .Selection
   'Indsætter i slutning af dokumentet
   .EndKey Unit:=wdStory
   .TypeParagraph
   .Paste

   'Indsætter ved bogmærket med navn "test"
   .GoTo What:=wdGoToBookmark, Name:="Test"
   .Paste
  End With
  .ActiveDocument.Save
  .Quit
 End With
 Set wdApp = Nothing
End Sub

Kopier informationer til et aktivt Word dokument

Sub CopyTableToOpenWordDocument()
 Dim wdApp As Word.Application
 Range("A1:B6").Copy
 Set wdApp = GetObject(, "Word.Application")
 With wdApp.Selection
  .EndKey Unit:=wdStory
  .TypeParagraph
  .Paste
 End With
 Set wdApp = Nothing
End Sub

Forudsætter, at Word er åben!

Lav et nyt Word dokument

Sub CopyTableToAnyWordDocument()
 Dim wdApp As Word.Application
 Range("A1:B6").Copy
 On Error Resume Next
 Set wdApp = GetObject(, "Word.Application")
 If wdApp Is Nothing Then
  Set wdApp = GetObject("", "Word.Application")
 End If
 On Error GoTo 0

 With wdApp
  .Documents.Add
  .Visible = True
  With .Selection
   .EndKey Unit:=wdStory
   .TypeParagraph
   .Paste
  End With
 End With
 Set wdApp = Nothing
End Sub

Opgave

Lav en makro, der flytter månedstotalerne fra de enkelte produktgrupper over i et Word dokument, der kunne være en pænt formateret månedsrapport. Det mest fleksible er, at oprette et dokument, hvor du indsætter nogle bogmærker, som du kan indsætte informationerne ved.

Integration med Internet explorer

Et lille eksempel på, hvordan du kan hente informationer ud at et web-site, som du kan bruge i Excel. Du skal huske at referere til "Microsoft Internet Controls"

Sub HentInfo()
 Dim oIE As SHDocVw.InternetExplorer
 Dim sPage As String
 Dim intStart, intSlut As Long
 Dim Info As String
 Set oIE = New SHDocVw.InternetExplorer
 oIE.Navigate "http://www.dr.dk"
 Do Until oIE.ReadyState = READYSTATE_COMPLETE
  DoEvents
 Loop

 sPage = oIE.Document.body.InnerHtml
 intStart = InStr(1, sPage, "Vejret")
 intSlut = InStr(intStart, sPage, "læs mere")
 Info = Mid(sPage, intStart, intSlut - intStart + 8)
 MsgBox Info
End Sub
Sub SendSMS()
    Dim oIE
    Set oIE = New SHDocVw.InternetExplorer
    oIE.Navigate "http://m1.dk/sms.php"
    Do Until oIE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    oIE.Visible = True
    oIE.Document.all("power_submit").Click
    Do Until oIE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    
    Dim c As Range
    For Each c In Range(Range("Mobilnummer").Offset(1, 0).Address, Range("Mobilnummer").Offset(1, 0).End(xlDown)).Cells
        Do Until oIE.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        oIE.Document.all("receivers").Value = c.Value
        oIE.Document.all("Message").Value = Range("Besked")
        oIE.Document.forms("sms_form").submit
    Next
End Sub

Der er på denne side en god beskrivelse af, hvordan man også kan gøre: http://www.microsoft.com/mind/0898/dom.asp


Opgave/udfordring

  • Lav en makro, der finder den aktuelle Euro kurs på et passende web-site og indsætter det i Excel
  • Lav en makro, der måler hvor lang tid et web-site er om at blive indlæst og laver en rapport i Excel
   
Spacer Spacer Spacer Spacer