- Katılım
- 2 Mart 2005
- Mesajlar
- 2,960
- Excel Vers. ve Dili
-
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Daha evvel kullandığım kodlar vardı ve çalışıyor ancak değişken tanımlamak zorunlu olsun dediğim zaman wdNewBlankDocument değerinde tanımsız değişken hatası veriyor. ben şimdilik vartiant dedim ama gerçekte ne olarak tanımlanmalıdır. Object kabul etmedi.
1.modül
2.modul
1.modül
Kod:
Sub Worde_Yapistir()
Selection.Copy
Call SeciliAlaniWordeYapistir(42.55, 42.55, 25, 25)
End Sub
Kod:
Option Explicit 'Değişken tanımlamak zorunludur
Sub SeciliAlaniWordeYapistir(ByVal ust, alt, sol, sag As Integer, _
Optional Yatay As Boolean, Optional kapat As Boolean, _
Optional DosyaAdı As String = "")
'ust, alt, sol, sag Kenar Boşlukları
'Yatay False (Varsayılan) veya True Sayfa Yönü
'Kapat False (Varsayılan) veya True Kapatılacakmı?
'DosyaAdı Kapatılırken kayıt edilecekse metin
Dim objWord, MyDoc As Object
[COLOR=red]Dim wdNewBlankDocument As Variant[/COLOR]
Selection.Copy
Application.ScreenUpdating = True
Set objWord = CreateObject("Word.Application")
Set MyDoc = objWord.Documents.Add[COLOR=red](DocumentType:=wdNewBlankDocument)[/COLOR]
objWord.Visible = True
With MyDoc.PageSetup
.TopMargin = ust '42.55
.BottomMargin = alt '42.55
.LeftMargin = sol '25#
.RightMargin = sag '25#
If Yatay = False Then
.PageWidth = 595.35 'CentimetersToPoints(21) 'dikey
.PageHeight = 841.95 'CentimetersToPoints(29,7) 'dikey
Else
.PageWidth = 841.95 'CentimetersToPoints(29.7) 'yataysayfa
.PageHeight = 595.35 'CentimetersToPoints(21) 'yataysayfa
End If
End With
objWord.Selection.PasteSpecial Link:=False, DataType:=10
Application.CutCopyMode = False
If DosyaAdı <> "" Then
With objWord
.ActiveDocument.SaveAs DosyaAdı
If kapat = True Then
.ActiveDocument.Close
.Quit
End If
End With
End If
Set objWord = Nothing: Set MyDoc = Nothing: Set wdNewBlankDocument = Nothing
Application.ScreenUpdating = False
End Sub