WORD DE INDEX OLUSTURABILIYORMUYUZ?

Katılım
16 Temmuz 2005
Mesajlar
3
Word'de index oluşturma konusunda yardıma ihtiyacım var

wordde yazılı olan bır metnın sonunda o metın ıcerısındekı sozcuklerden kac adet oldugunu yazdırabılıyormuyuz?

yardımlarınızı beklıyorum

Emre ÇOLAK
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,233
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın emrecolak09,
Belli bir bölgeyi seçiniz
1. Tools (araçlar)
2. Word Count (kelime say) size istetistiği verir

Bildiğim budur. İyi Çalışmalar
 
Katılım
16 Temmuz 2005
Mesajlar
3
Sayın Necdet Bey

İlginiz için tesekkurler

Ancak Benım Sorunum bu degıl. Ben tum sozcuklerın sayısını degıl
her sozcukten kac adet oldugunu hesaplayabılırmı onu merak edıyorum

Iyı calısmalar

Emre ÇOLAK
 
Katılım
26 Mayıs 2005
Mesajlar
122
Excel Vers. ve Dili
excel 2003- ingilizce
Selam

Aşağıdaki örnek gibi birşey mi?.Ekli dosya "kelime sayar.doc"
 
Katılım
26 Mayıs 2005
Mesajlar
122
Excel Vers. ve Dili
excel 2003- ingilizce
Tabloya demişsiniz!
Ekli dosya "kelime sayar tabloya.doc"
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif olarak, kendi imalatımız olan ekli dosyadaki kodu da deneyebilirsiniz ...

(Sanırım teknik bir problem var, "Sitenin ataç kapasitesi dolmuştur" şeklinde bir mesaj aldım...)
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tekrar merhaba;

Ataçı ekleyemedim, bari kodu yapıştırayım dedim ...

Kod:
'**********************************************
'* Dokumandaki kelimeleri sayan kod. *
'* *
'* Burasi Excel Vadisi ... *
'* *
'* Haluk ® *
'* 03/10/2005 *
'* *
'**********************************************
 
Sub Test()
Dim NoWords As Long, i As Long, k As Long
Dim MyColl As New Collection
Dim Msg As String, MsgHeader As String, x As String, StrVal As String
Dim MyRng As Range
 
ActiveWindow.ActivePane.View.ShowAll = False
NoWords = ActiveDocument.Words.Count
 
For i = 1 To NoWords
x = Trim(ActiveDocument.Words(i))
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "[,.!%&~`:+/*¹-]"
StrVal = RegExp.Replace(x, "")
MyColl.Add (StrVal)
Next
 
On Error Resume Next
For i = 1 To NoWords
For j = i + 1 To NoWords - 1
If MyColl(i) = MyColl(j) Or MyColl(j) = "" Then
MyColl.Remove j
End If
Next
Next
On Error GoTo 0
 
For i = 1 To MyColl.Count
k = 0
For j = 1 To NoWords
If Trim(ActiveDocument.Words(j)) = MyColl(i) Then
k = k + 1
End If
If Asc(MyColl(i)) = 13 Then GoTo ResumeFor:
Next
Msg = Msg & vbNewLine & MyColl(i) & " »» " & k & " adet"
ResumeFor:
Next
 
MsgHeader = vbCrLf & vbCrLf & "Rapor :"
StartDoc = ActiveDocument.Content.End - 1
EndDoc = ActiveDocument.Content.End - 1
Set MyRng = ActiveDocument.Range(Start:=StartDoc, End:=EndDoc)
MyRng.Text = MsgHeader & vbCrLf
MyRng.ParagraphFormat.Alignment = wdAlignParagraphCenter
MyRng.Bold = True
MyRng.Font.Color = wdColorBlue
MyRng.Underline = wdUnderlineThick
 
StartDoc = ActiveDocument.Content.End - 1
EndDoc = ActiveDocument.Content.End - 1
Set MyRng = ActiveDocument.Range(Start:=StartDoc, End:=EndDoc)
MyRng.Text = Msg
MyRng.ParagraphFormat.Alignment = wdAlignParagraphLeft
MyRng.Bold = True
MyRng.Font.Color = wdColorBlack
MyRng.Text = Msg
 
Set MyRng = Nothing
Set RegExp = Nothing
End Sub
 
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tekrar merhaba;

Sanırım sitedeki ataç ekleme problemi giderildi. Bu durumda, yukarıdaki kodun yer aldığı dosyayı eklemek istedim .

İyi akşamlar ...
 
Katılım
24 Ocak 2005
Mesajlar
252
Peki kelimeleri nasıl saydıracağız? Düzendeki bu komutuyla mı? veya hangi yöntemle
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
teknik' Alıntı:
Peki kelimeleri nasıl saydıracağız? Düzendeki bu komutuyla mı? veya hangi yöntemle
Kod:
Sub Test2()
WordCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticWords) _
& " adet kelime var"
ParagCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticParagraphs) _
& " adet kelime var"
LineCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticLines) _
& " adet satır var"
CharacterCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticCharacters) _
& " adet karakter var"
PagesCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticPages) _
& " adet sayfa var"
Msg = WordCount & vbCrLf & ParagCount & vbCrLf & LineCount & vbCrLf _
& CharacterCount & vbCrLf & PagesCount
MsgBox Msg, vbInformation, "Rapor..."
End Sub
 
Son düzenleme:
Katılım
24 Ocak 2005
Mesajlar
252
Haluk Bey teşekkürler.
Peki Bu kodları veya dosyayı tıpkı excel deki gibi bir eklenti olarak kaydedip bütün word dosyalarında tek makro ile kullanabilirmiyiz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
teknik' Alıntı:
.....
Peki Bu kodları veya dosyayı tıpkı excel deki gibi bir eklenti olarak kaydedip bütün word dosyalarında tek makro ile kullanabilirmiyiz?
Kodları, Normal modulünün içinde oluşturacağınız modüllere yerleştirirseniz bu iş olur.
 
Katılım
24 Ocak 2005
Mesajlar
252
Haluk Bey Teşekkürler gayet iyi çalışıyor. Eğre birde klavyeden ksayol tuşuyla direk makro çalışsa çok daha güzel olur. örneğin alt+m ile direk makro çalışsa olur mu?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Þöyle bir şey olabilir ...

Word'de VBE kısmında Normal içinde bir module aşağıdakileri yerleştirin ve kaydedip, kapatın.

Daha sonra, önceden kaydedilmiş herhangibir Word belgesi açın ve klavyedeki F3 tuşuna bastığınızda kodlardaki Test2 isimli prosedur çalışacaktır.

Kod:
Sub AutoExec()
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF3), _
KeyCategory:=wdKeyCategoryMacro, Command:="Test2"
End Sub
'
Sub Test2()
WordCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticWords) _
& " adet kelime var"
ParagCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticParagraphs) _
& " adet kelime var"
LineCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticLines) _
& " adet satır var"
CharacterCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticCharacters) _
& " adet karakter var"
PagesCount = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticPages) _
& " adet sayfa var"
Msg = WordCount & vbCrLf & ParagCount & vbCrLf & LineCount & vbCrLf _
& CharacterCount & vbCrLf & PagesCount
MsgBox Msg, vbInformation, "Rapor..."
End Sub
 
Son düzenleme:
Katılım
24 Ocak 2005
Mesajlar
252
Haluk Bey gerçekten bu kadar ilgi gösterdiğiniz ve yardımcı olduğunuz için teşekkür ederim. bütün word dosyalarında çalışıyor üstelik açılışta makroları etkinleştir mesajı da çıkmadan.

İyi Çalışmalar...
 
Katılım
24 Ocak 2005
Mesajlar
252
Bir de gözden kaçan bir dalgınlık noktası olsa gerek yukarıdaki ikinci kod satırındaki "adet kelime var" "adet paragraf var" olması gerekiyor herhalde çünkü iki defa farklı sayılarda kelime var diyor.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
teknik' Alıntı:
....... bütün word dosyalarında çalışıyor üstelik açılışta makroları etkinleştir mesajı da çıkmadan.
.......
Evet, bu yöntemle yani Normal.dot modulüne yazılan kodlar dosya açılışında "Makroları Etkinleştir / Etkinleştirme" uyarısı vermez. Çünkü bu işlem, MS Excel' deki "Eklenti dosyası" karşılığıdır. MS Excel'de de bildiğiniz gibi, eklenti dosyaları açılırken herhangibir makro uyarı mesajı vermez.

İyi çalışmalar dilerim ...

Not: Haklısınız, 2nci satırda "..... paragraf var" şeklinde olucak.
 
Üst