• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

wdNewBlankDocument Değişken tipi nedir?

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
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
Kod:
Sub Worde_Yapistir()
Selection.Copy
Call SeciliAlaniWordeYapistir(42.55, 42.55, 25, 25)
End Sub

2.modul
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
 
&#304;yi de; neden bunu de&#287;i&#351;ken ad&#305; olarak kullanmak istedi&#287;inizi anlamad&#305;m ? wdNewBlankDocument zaten, Word document tipi parametrelerinin de&#287;eri ... De&#287;i&#351;ken olarak tan&#305;mlaman&#305;n gere&#287;i nedir?

Kodlarda; DocumentType:=0 yazsan&#305;zda ayn&#305; &#351;ey olur.
 
hocam ben de&#287;i&#351;ken olarak kullanmak istemiyorum option excilipit yaz&#305;nca modul&#252;n ba&#351;&#305;na tan&#305;ms&#305;z de&#287;i&#351;ken hatas&#305; veriyor vba denilen programc&#305;k. ben variant dedim ge&#231;tim ama ger&#231;ekte nedir onu soruyorum
 
Hüseyin bey kardeşim, ne yazdığımı dikkatlice okudunuz mu? Option'ı moption'ı geçiniz. Bu isimle, bir değişken tanımlaması yapamazsınız, yapmamalısınız, mantığa aykırı.

Diyorum ki bu bir parametre ...

Excel'in VBA Find komutunda ne yapıyorduk hatırlayınız.
Kod:
Sheets("Sayfa1").Range("A1:A100").Find("Aranacak Kelime", Lookat:=[B][COLOR=red]xlWhole[/COLOR][/B])

Burada xlWhole neyse, sizin değişşken diye tanımlamaya çalıştığınız şey de o'dur. xlWhole bir parametredir. wdNewBlankDocument 'de bir parametredir.

Siz bu parametreye değer atamak istiyorsanız,

Kod:
Dim DokumanTipi as integer
DokumanTipi=0

deyiniz.

Kod:
Set MyDoc = objWord.Documents.Add(DocumentType:=DokumanTipi)

şeklinde de kodunuzu revize ediniz. Dokumantipini istediğiniz gibi değiştiriniz

dim wdNewBlankDocument ..... olmaz ..
 
Anladım hocam ben orada hata verdi diye öyle söyledim. hocam teşekkürler
şeklinde kullanınca değişken sormadı bile
Kod:
    Set MyDoc = objWord.Documents.Add(DocumentType:=0) 'wdNewBlankDocument
 
Geri
Üst