VBA para Word: ContadorSilabicoMk3

Este pequeno programa em VBA para Word2000 permite a partir de uma lista de sílabas contida no ficheiro Silabas.doc e produz um registo que grava em c:\ no formato <SilabasContadasNaLingua” & mlingua & “.doc>

Este programa pode ser usado para determinar o número de ocorrências de uma dada sílaba numa língua determinada, e depois comparar o seu resultado com o padrão de distribuição numa escrita que se suspeite ser silábica, mas da qual se desconheça o valor de cada caracter (supostamente silábico).

Attribute VB_Name = “NewMacros”

Sub ContadorSilabicoMk3()

Documents.Open FileName:=”C:\Silabas.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto
Documents.Open FileName:=”C:\SilabasLog.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto
Documents.Open FileName:=”C:\Palavras.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto

MsgBox (“ATENÇÃO: Faça o <Paste> para o Silabas.doc das palavras da lingua a analisar silabicamente e coloque no fim a linha o ‘eof’ ! Neste ficheiro todas as sílabas estão separadas por – e começam e terminam tb com -!”)

mlingua = InputBox(“Escreva aqui o nome da lingua que vai analisar (no feminino)”, “ContadorSilabico”)
Windows(“SilabasLog.doc”).Activate
Selection.Font.Size = 14
Selection.TypeParagraph

Selection.HomeKey Unit:=wdStory
Selection.TypeText Text:=”Análise realizada sobre a língua ” & mlingua
Selection.TypeParagraph
Selection.TypeText Text:=”Sílaba;Ocorrências”
Selection.TypeParagraph
Windows(“Silabas.doc”).Activate

Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
mSilaba = Selection.Text

QuantosCaracteres = Len(mSilaba)

mSilaba = Mid(mSilaba, 1, QuantosCaracteres – 1)

Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdStory

While mSilaba <> “eof” ‘ a ultima linha do Silabas.doc deve ter terminar com a linha eof

Windows(“Palavras.doc”).Activate

Selection.Find.ClearFormatting

With Selection.Find
.Text = “-” & mSilaba & “-”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
mContaSilaba = 0
While Selection.Find.Found = True
Selection.Find.Forward = True
Selection.Find.Wrap = wdFindStop ‘ hurrah! sem estas ele contava para cima!
Selection.Find.Execute
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine

mContaSilaba = mContaSilaba + 1
Wend

Windows(“SilabasLog.doc”).Activate
Selection.Font.Size = 12
Selection.TypeParagraph
‘Apresentação para exportação para csv-excel:
Selection.TypeText Text:=mSilaba & “;” & mContaSilaba
‘Apresentação cuidada para Word:
‘Selection.TypeText Text:=”A silaba ( ” & mSilaba & ” ) surge < ” & mContaSilaba & ” > vezes.”
Selection.EndKey Unit:=wdStory

Windows(“Silabas.doc”).Activate
Selection.MoveDown Unit:=wdLine, Count:=1

Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
mSilaba = Selection.Text

QuantosCaracteres = Len(mSilaba)

mSilaba = Mid(mSilaba, 1, QuantosCaracteres – 1)

‘Selection.MoveDown Unit:=wdLine, Count:=1
‘Selection.HomeKey Unit:=wdStory

Wend

Windows(“SilabasLog.doc”).Activate
ChangeFileOpenDirectory “C:\”
ActiveDocument.SaveAs FileName:=”SilabasContadasNaLingua” & mlingua & “.doc”, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:=””, AddToRecentFiles:=True, WritePassword _
:=””, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
MsgBox (“Terminou a execução do ContadorSilabicoMk3 ! Foi gravado no disco C:\ o ficheiro <SilabasContadasNaLingua” & mlingua & “.doc”)

End Sub

Sub MeteHifenNoPrincipioeFimDalinha()
Attribute MeteHifenNoPrincipioeFimDalinha.VB_Description = “Macro gravada 17-07-2002 por Rui Martins”
Attribute MeteHifenNoPrincipioeFimDalinha.VB_ProcData.VB_Invoke_Func = “Normal.NewMacros.Macro1″

‘ Macro1 Macro
‘ Macro gravada 17-07-2002 por Rui Martins

Selection.TypeText Text:=”-”
Selection.EndKey Unit:=wdLine
Selection.TypeText Text:=”-”
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine
End Sub
Sub ContadorCaracteresMk1()

Documents.Open FileName:=”C:\Silabas.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto
Documents.Open FileName:=”C:\SilabasLog.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto
Documents.Open FileName:=”C:\Palavras.doc”, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=””, _
PasswordTemplate:=””, Revert:=False, WritePasswordDocument:=””, _
WritePasswordTemplate:=””, Format:=wdOpenFormatAuto

MsgBox (“ATENÇÃO: Faça o <Paste> para o Silabas.doc das palavras da lingua a analisar caracter a caracter e coloque no fim a linha o ‘eof’ !”)

mlingua = InputBox(“Escreva aqui o nome da lingua que vai analisar (no feminino)”, “ContadorSilabico”)
Windows(“SilabasLog.doc”).Activate
Selection.Font.Size = 14
Selection.TypeParagraph

Selection.HomeKey Unit:=wdStory
Selection.TypeText Text:=”Análise realizada sobre a língua ” & mlingua
Selection.TypeParagraph
Selection.TypeText Text:=”Caracter,Ocorrências”
Selection.TypeParagraph
Windows(“Silabas.doc”).Activate

Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
mSilaba = Selection.Text

QuantosCaracteres = Len(mSilaba)

mSilaba = Mid(mSilaba, 1, QuantosCaracteres – 1)

Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdStory

While mSilaba <> “eof” ‘ a ultima linha do Silabas.doc deve ter terminar com a linha eof

Windows(“Palavras.doc”).Activate

Selection.Find.ClearFormatting

With Selection.Find
.Text = mSilaba
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
mContaSilaba = 0
While Selection.Find.Found = True
Selection.Find.Forward = True
Selection.Find.Wrap = wdFindStop ‘ hurrah! sem estas ele contava para cima!
Selection.Find.Execute
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine

mContaSilaba = mContaSilaba + 1
Wend

Windows(“SilabasLog.doc”).Activate
Selection.Font.Size = 12
Selection.TypeParagraph
‘Apresentação para exportação para csv-excel:
Selection.TypeText Text:=mSilaba & “,” & mContaSilaba
‘Apresentação cuidada para Word:
Selection.EndKey Unit:=wdStory

Windows(“Silabas.doc”).Activate
Selection.MoveDown Unit:=wdLine, Count:=1

Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
mSilaba = Selection.Text

QuantosCaracteres = Len(mSilaba)

mSilaba = Mid(mSilaba, 1, QuantosCaracteres – 1)

Wend

Windows(“SilabasLog.doc”).Activate
ChangeFileOpenDirectory “C:\”
ActiveDocument.SaveAs FileName:=”SilabasContadasNaLingua” & mlingua & “.doc”, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:=””, AddToRecentFiles:=True, WritePassword _
:=””, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
MsgBox (“Terminou a execução do ContadorCaracteres ! Foi gravado no disco C:\ o ficheiro <SilabasContadasNaLingua” & mlingua & “.doc>”)

End Sub

Categories: A Escrita Cónia, CodeFarmPt | Deixe um comentário

Navegação de artigos

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

Create a free website or blog at WordPress.com.

Eleitores de Portugal (Associação Cívica)

Associação dedicada à divulgação e promoção da participação eleitoral e política dos cidadãos

Vizinhos em Lisboa

A Vizinhos em Lisboa tem em vista a representação e defesa dos interesses dos moradores residentes nas áreas, freguesias, bairros do concelho de Lisboa nas áreas de planeamento, urbanismo, valorização do património edificado, mobilidade, equipamentos, bem-estar, educação, defesa do património, ambiente e qualidade de vida.

Vizinhos do Areeiro

Núcleo do Areeiro da associação Vizinhos em Lisboa: Movimento de Vizinhos de causas locais e cidadania activa

Vizinhos do Bairro de São Miguel

Movimento informal, inorgânico e não-partidário (nem autárquico independente) de Vizinhos

TRAVÃO ao Alojamento Local

O Alojamento Local, o Uniplaces e a Gentrificação de Lisboa e Porto estão a destruir as cidades

Não aos Serviços de Valor Acrescentado nas Facturas de Comunicações !

Movimento informal de cidadãos contra os abusos dos SVA em facturas de operadores de comunicações

Vizinhos de Alvalade

Movimento informal, inorgânico e não-partidário (nem autárquico independente) de Vizinhos de Alvalade

anExplica

aprender e aprendendo

Subscrição Pública

Plataforma independente de participação cívica

Rede Vida

Just another WordPress.com weblog

Vizinhos do Areeiro

Movimento informal, inorgânico e não-partidário (nem autárquico independente) de Vizinhos do Areeiro

MDP: Movimento pela Democratização dos Partidos Políticos

Movimento apartidário e transpartidário de reforma da democracia interna nos partidos políticos portugueses

Operadores Marítimo-Turísticos de Cascais

Actividade dos Operadores Marítimo Turísticos de Cascais

MaisLisboa

Núcleo MaisDemocracia.org na Área Metropolitana de Lisboa

THE UNIVERSAL LANGUAGE UNITES AND CREATES EQUALITY

A new world with universal laws to own and to govern all with a universal language, a common civilsation and e-democratic culture.

looking beyond borders

foreign policy and global economy

O Futuro é a Liberdade

Discussões sobre Software Livre e Sociedade

%d bloggers like this: