Θέμα: StrConv

Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 01-04-13, 21:47
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα!
Θάνο, ούτε η StrConv() αλλά ούτε και το Word (μέσω αυτοματισμού) υποστηρίζουν τον γραμματικό κανόνα του τελικού σίγμα.

Δεν κατάλαβα όμως πως θα μπουν οι τόνοι μετά τη μετατροπή των κεφαλαίων.
Αυτό όμως είναι δικό σου θέμα.

Ο παρακάτω κώδικας παίρνει τις τιμές των πεδίων της φόρμας και τις στέλνει σε αντίστοιχους σελιδοδείκτες σε υπάρχον έγγραφο Word:

Κώδικας:
Option Compare Database
Option Explicit

Private Sub cmdExportDataToWord_Click()
    Dim wd As Object
    Dim oDoc As Object
    Set wd = CreateObject("Word.Application")
    Set oDoc = wd.Documents.Open("E:\Desktop\Test.docx")    ' Προσάρμοσε τη διαδρομή του αρχείου
    wd.Visible = True
    SetBokkmarkRangeText oDoc, "Text1", Nz(Me.Service, "")
    '    SetBokkmarkRangeText oDoc, "Text2", Nz(Me.άλλο_πεδίο, "")
    '    SetBokkmarkRangeText oDoc, "Text3", Nz(Me.άλλο_πεδίο, "")
    AppActivate oDoc.Name
    Set oDoc = Nothing
    Set wd = Nothing
End Sub

Function SetBokkmarkRangeText(oDoc As Object, BookkmarkName As String, StrText)
    Dim oRange As Object
    Dim strWord As String
    Dim i As Integer
    If oDoc.Bookmarks.Exists(BookkmarkName) Then
        Set oRange = oDoc.Bookmarks(BookkmarkName).Range
        oRange.Text = StrText
        oRange.Case = 2
        For i = 1 To oRange.Words.Count
            strWord = Trim(oRange.Words.Item(i).Text)
            If Right(strWord, 1) = ChrW(963) Then
                oRange.Words.Item(i).Text = Left(strWord, Len(strWord) - 1) & ChrW(962) & Chr(32)
            End If
        Next
    End If
End Function
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση