به عنوان بخشی از یک ماکرو، ممکن است نیاز به کار با اطلاعات ذخیره شده در یک نشانک داشته باشید. به عنوان مثال، ممکن است لازم باشد متن را در یک نشانک استخراج کنید، آن را به یک متغیر اختصاص دهید و سپس بر اساس محتویات متغیر، مقداری پردازش انجام دهید.
دو روش وجود دارد که می توانید محتوای یک نشانک را به یک متغیر در ماکرو VBA اختصاص دهید. اولین مورد این است که به سادگی به نشانک بروید و آن را انتخاب کنید، سپس متغیر را برابر با محتوای انتخاب کنید. خطوط کد زیر این عمل را برای نشانکی به نام MyBookmark انجام می دهد:
Dim sMyString As String Selection.GoTo What:=wdGoToBookmark, Name:="MyBookmark" sMyString = Selection.Text
اگر نمیخواهید انتخاب را در سند تغییر دهید، میتوانید به سادگی با مجموعه نشانکهایی که توسط Word نگهداری میشود کار کنید. با فرض اینکه همچنان به محتوای نشانک MyBookmark نیاز دارید، کد زیر این کار را انجام می دهد:
Dim sMyString As String sMyString = ActiveDocument.Bookmarks("MyBookmark").Range.Text
توجه داشته باشید که نام نشانک ("MyBookmark") لازم نیست همانطور که در هر دو مثال نشان داده شده است یک مقدار ثابت باشد. اگر می خواهید، می توانید به سادگی مقدار استاتیک را با یک متغیر جایگزین کنید، همانطور که در اینجا نشان داده شده است:
Dim sMyString As String Dim sBName As String sBName = "Boilerplate" Selection.GoTo What:=wdGoToBookmark, Name:=sBName sMyString = Selection.Text
در این مثال، نام نشانک (نامی که میخواهید محتوای آن را بگیرید و در sMyString قرار دهید) در متغیر sBName قرار دارد. همانطور که کد خود را توسعه می دهید، می توانید به راحتی راهی برای کاربر ایجاد کنید تا نام نشانک را وارد کند و فقط آن را به متغیر sBName اختصاص دهد.