بروس در حال نوشتن یک ماکرو است و باید یک انتخاب در سند انجام دهد. او می داند که چگونه نقطه درج را قرار دهد، اما پس از تعیین موقعیت، باید همه چیز را از آنجا تا علامت نگارشی بعدی انتخاب کند، از جمله هر علامت نقل قول احتمالی یا آپستروف بعد از علامت نگارشی. بروس تعجب می کند که آیا یک دستور واقعی برای انجام این کار وجود دارد، یا آیا نیاز به نوعی کد درگیر برای انجام انتخاب وجود دارد.
اولین کاری که باید امتحان کنید این است که از قابلیت داخلی VBA برای جابهجایی یک جمله در یک زمان استفاده کنید. هنگامی که نقطه درج را قرار دادید، از دستور زیر استفاده کنید:
Selection.MoveRight Unit:=wdSentence, Count:=1, Extend:=wdExtend
این فرمان با هر جمله ای که Word به عنوان یک جمله می بیند، انتخاب را به سمت راست گسترش می دهد، بنابراین باید نیازهای شما را برآورده کند. اگر نشد (شاید برخی از نویسههایی را که باید در انتخاب شما گنجانده شود را از دست داده است)، میتوانید کد انتخابی خود را ایجاد کنید. در اینجا مثالی از یکی از راههای توسعه چنین کدی آورده شده است:
With Selection
.Extend
.Find.Text = "[,."" & Chr(146) & Chr(148) & Chr(34) & "]"
.Find.MatchWildcards = True
.Find.Execute
.Find.Text = "[!,."" & Chr(146) & Chr(148) + Chr(34) & "]"
.Find.Execute
End With
ویژگی Extend باعث می شود Word همه چیز را که از محل درج شروع می شود انتخاب کند و جستجوی حروف عام همه کاراکترهای نقطه گذاری را پیدا می کند. متن مورد جستجو اساساً تمام کاراکترهای نقطه گذاری، از جمله آپستروف و علامت نقل قول است. (اینها را می توان مطابق با نیازهای شما تغییر داد.) دومین عملیات یافتن (کاری که با علامت تعجب شروع می شود) اولین کاراکتر غیر نقطه گذاری را پس از انجام یافتن اولیه پیدا می کند. به این ترتیب، چندین علامت نگارشی را در یک ردیف مدیریت می کند.