Professional Documents
Culture Documents
Szócsere
Sok problémát okozhat 2 szó felcserélése. például minden ,eladó" ,vevő"-re váltása és
viszont, főleg egy többoldalas íromány esetében. Persze kivitelezhető, de nem könnyű. 2
hagyományos keresés-csere művelet nem elég, legalább háromra van szükség és
kiemelkedően jó memóriára, nehogy összezavarodjunk és hibázzunk.
Jobb megoldásra lenne szükség? Csupán futtatni kell a Szócserét. A makró indításkor egy
kis párbeszédablakot jelenít meg, amiben az átcserélni kívánt szavak vagy kifejezések
után érdeklődik. Természetesen a program tartalmazza a Word-ben is megismert
szokásos ,behelyettesítés" és ,csak teljes szó" lehetőségeket ahogy el is várhatjuk. Ha
rábökünk a ,Mindent cserél" gombra, a script automatikusan átvizsgálja a teljes
szöveget, vagy bármelyik kiválasztott részét, és végrehajtja a kívánt változtatásokat.
A motorházban
A WinMag által készített Szócsere egyes-egyedül végrehajtja mind a 3 szükséges
különálló keresés-csere műveletet működése során. Először is rátalál minden egyes
megjelenésére az első cserélendő kifejezésnek, és azt ideiglenesen kitölti. A kitöltő
szerepét a talányos XjlasOmcmhoX szócska látja el, ami nem valószínű, hogy feltűnik
bármely eljövendő szövegben (kivéve persze most a ford.). Következő lépésként a
Szócsere helyettesíti a cserélendő második szó minden előfordulását az elsővel, végül
pedig a makró átírja az ideiglenes kitöltőt a második megadott kifejezéssé.
Private Sub btnReplaceAll_Click()
Dim rng As Range
With rng.find
.Text = txtSwap1.Text
.Replacement.Text = "XjlasOcmhoX"
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = chkCase.Value
.MatchWholeWord = chkWhole.Value
.MatchAllWordForms = chkWordForms.Value
.MatchWildcards = chkWildcards.Value
.MatchSoundsLike = chkSoundsLike.Value
.Execute Replace: = wdReplaceAll
End With
With rng.find
.Text = txtSwap2.Text
.Replacement.Text = txtSwap1.Text
.ClearFormatting
.Replacement.ClearFormatting
.Execute Replace: = wdReplaceAll
End With
With rng.find
.Text = "XjlasOcmhoX"
.Replacement.Text = txtSwap2.Text
.Execute Replace: = wdReplaceAll
End With
frmSwap.Caption = "Swap Done"
btnCancel.Caption = "Close"
End Sub
WSH levelezés
Ez a hasznos kis makró átveszi az irányítást az Outlook (vagy más MAPI alapú
levelezőprogram) egy része felett, és fájl küldésére utasítja. Ha az ,asztal"-ra helyezzük a
programfájlt, elég egy dupla kattintás a művelethez. Kiválóan alkalmas időszaki jeletések
vagy más, gyakran frissítendő írások kiküldésére.
A motorházban
Feltétlenül meg kell változtatni a makró egyes részeit, saját igényeinkhez igazítva a
kiválasztott fájl nevét, a megcélzott címet és az üzenet tárgyát, mielőtt a programot
használatba állítjuk. Természetesen megadható több adatállomány vagy címzett,
pontosvesszővel elválasztva (pl. terjesztes@byte.hu; posta@byte.hu).
Dim objNameSpace
Dim objOutlookApp
Dim objItem
Sub FileOpen()
Dim fid As String
Dim RestrictPath As String
Dim RestrictMask As String
Load frmOpen
frmOpen.lstFiles.Clear
On Error Resume Next
ChDir RestrictPath
If Err Then
MsgBox "Directory " & Chr$(34) & RestrictPath & _
Chr$(34) & " does not exist" & vbCrLf & _
"Contact your System Administrator", _
vbOKOnly Or vbExclamation, WMR
Exit Sub
End If
fid = Dir(RestrictPath & RestrictMask)
While fid > " "
frmOpen.lstFiles.AddItem fid
fid = Dir
Wend
If frmOpen.lstFiles.ListCount < = 0 Then
MsgBox "No files available", vbOKOnly _
Or vbExclamation, WMR
Exit Sub
Unload frmOpen
End If
frmOpen.Show
If frmOpen.OpenCancel Then Exit Sub
fid = frmOpen.lstFiles.List(frmOpen.lstFiles.ListIndex)
ChangeFileOpenDirectory RestrictPath
Documents.Open FileName: = fid, ConfirmConversions: = False, _
ReadOnly: = frmOpen.chkReadOnly.Value, _
AddToRecentFiles: = False, PasswordDocument: = "", _
PasswordTemplate: = "", Revert: = False, _
WritePasswordDocument: = "", WritePasswordTemplate: = "", _
Format: = wdOpenFormatAuto
Unload frmOpen
End Sub
Sub FileSaveAS()
ActiveDocument.Save
End Sub
Korlátozás felügyelet
Dim WSHShell
Dim strPath
Dim strMask
Dim intYorN
Dim strRegKey
strRegKey = " HKCU\Software \VB and VBA Program Settings \WinMag \Restrict \"
Set WSHShell = WScript.CreateObject("WScript.Shell")
intYorN = MsgBox("Storing:" & vbCrLf & "Path: " & strPath & vbCrLf _
& "Mask: " & strMask, vbOKCancel, "WinMag Restrictor")
'The following three lines can be enabled to delete all Restrictor Reg Entries
'WSHShell.RegDelete strRegKey & "Mask \"
'WSHShell.RegDelete strRegKey & "Path \"
'WSHShell.RegDelete strRegKey
WScript.Quit
Az MRU eltávolítása
Sub AutoExec()
Application.DisplayRecentFiles = False
End Sub
Sub ToolsOptions()
Dim dlg As Dialog
Application.DiplayRecentFiles = False
Set dlg = Dialogs(wdDialogToolsOptions)
dlg.Show
Application.DisplayRecentFiles = False
End Sub
Szerkesztés lista
logtime = Now
Open LogFileName For Append Access Write Lock Write As 1
Print 1, Format$(logtime, ,short date"); vbTab;
Print 1, Format$(logtime, ,long time"); vbTab;
Print 1, d;
If Not IsMissing(a) Then Print 1, vbTab; a;
Print 1, ,"
Close 1
End Sub
Gyors számláló
Sub QwordCount()
On Error Resume Next
StatusBar = ,Words in document:" &ActiveDocument.Words.Count
If Err Then StatusBar = ,No active document"
End Sub
Nagybani Csere
With rng.find
.Text = strFind
.Replacement.Text = strRepl
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = chkCaseValue
.MatchWholeWord = chkWhole.Value
.MatchAllWordForms = chkWordForms.Value
.MatchWildcard = chkWildcards.Value
.MatchSoundsLike = chkSoundsLike.Value
.Execute Replace: = wdReplaceAll
End With
End Sub
E-mail figyelmeztető
Ügynök
Ügynök a Microsoft által adományozott neve annak a technológiának, ami azokat a cuki
rajzfilmfigurákat jeleníti meg amíg egy Office alkalmazást futtatunk. Ez a technológia
általános eleme lesz a Windows 2000-nek, de Windows 98-hoz és 95-höz is ingyenesen
letölthető a kiegészítő program a
http://msdn.microsoft.com/workshop/imedia/agent/agentdl.asp címről. A kiegészítés
telepítése után más alkalmazásokban is használhatóak a figurák, beleértve a saját
makrókat is.
Az alábbi makró megmutatja, hogyan lehet egy Ügynökkel (Peedy-vel a papagájjal)
megjeleníttetni az általunk választott információt. Sőt, a szintén ingyenesen letölthető
irás-beszéd átalakítóval Peedy akár ki is mondhatja amit hallani szeretnénk.
Ha másik Ügynököt szeretnénk szerepeltetni, csupán meg kell változtatni a strName =
,Peedy" sort strName = ,Genie" vagy ,Merlin" vagy ,Robby" vagy más ügynök nevére.
Szintén megváltoztatható az Ügynök üdvözlőmondata is a objChar.Speak (,Hello! I'm "
&strName) sor átváltoztatással példának okáért objChar.Speak (,Howdy Pardner!") sorrá.
A motorházban
Az Ügynökök a gesztusok széles választékával rendelkeznek. Ez a makró ebből kettőt
mutat be: az integetést és a fülelést. Az Ügynökök az alkalmazások felpezsdítése mellett
akár arra is használhatóak, hogy rendszergazdaként fontos információkat kérjünk a
felhasználóktól. További példák és letölthető elemek találhatóak a
http://www.winmag.com címen.
Dim objAgent
Dim objChar
Dim objRequest
Dim txtSpeak
Dim strName
objChar.Show
WScript.Quit