ওয়ার্ড 2007-এর সমস্ত ক্রস-রেফারেন্সগুলিতে একটি নির্দিষ্ট শৈলী নির্ধারণ করা কি সম্ভব?


32

যোগ করার মতো আর কিছুই নয়, আমি আমার 2007 সালের একটি ওয়ার্ড নথিতে থাকা সমস্ত ক্রস-রেফারেন্সগুলির স্টাইলটি একবারে একবারে পরিবর্তন করতে চাই । তবে কীভাবে করব তা আমার কোনও ধারণা নেই। কিভাবে এই কাজ করা যেতে পারে?


ভাল প্রশ্ন, আমি দ্রুত এবং ময়লা কিছু খুঁজে পেলাম না। তবে আমি মনে করি এটি সম্পূর্ণ নথির শৈলীর সাথে সম্পর্কিত
আইভো ফ্লিপস

1
@ আইভো, হ্যাঁ আমিও এটি ডকুমেন্টের স্টাইলের সাথে সম্পর্কিত কিছু মনে করি তবে আমি ওয়ার্ডের সাথে খুব বেশি অভিজ্ঞতার সাথে একটি দরিদ্র এসডাব্লু বিকাশকারী :)
ড্রয়

@ মার্কো: আমার আপডেট
হওয়া

হাঁ, মহান উত্তর অনেক ধন্যবাদ, খুব খুব আকর্ষণীয়
ড্রেক

উত্তর:


38

কিছু ক্রস-রেফারেন্স ধরণের স্বয়ংক্রিয়ভাবে "তীব্র রেফারেন্স" শৈলীতে ফর্ম্যাট হয় তবে বেশিরভাগটি "সাধারণ" পাঠ্য হিসাবে ফর্ম্যাট হয়।

ক্রস রেফারেন্সের পাঠ্যে "তীব্র রেফারেন্স" শৈলী প্রয়োগ করতে:

  • পাঠ্যটি নির্বাচন করুন
  • ফিতা মধ্যে "হোম" ট্যাব চয়ন করুন
  • রিবনের "স্টাইলস" গ্রুপে আপ-ডাউন বাটন বা ড্রপ-ডাউন বোতাম ব্যবহার করে "তীব্র রেফারেন্স" শৈলীটি চয়ন করুন (বা অন্য কোনও স্টাইল যদি আপনি চান তবে)

প্রদত্ত শৈলীর সমস্ত পাঠ্যের উপস্থিতি পরিবর্তন করতে:

  • ফিতা মধ্যে "হোম" ট্যাব চয়ন করুন
  • ফিতাটির "স্টাইলস" গ্রুপে ড্রপ-ডাউন বোতামটি ব্যবহার করে "শৈলী প্রয়োগ করুন ..."
  • "স্টাইলের নাম প্রয়োগ করুন" ডায়ালগ বাক্সে "স্টাইলের নাম" এর অধীনে আপনি যে স্টাইলটি পরিবর্তন করতে চান তার নাম চয়ন করুন (যেমন "তীব্র রেফারেন্স")
  • "সংশোধন ..." বোতামটি ক্লিক করুন
  • আপনার অনুসারে ফরমেটিংটি পরিবর্তন করুন এবং "ঠিক আছে" ক্লিক করুন

একবারে সমস্ত ক্রস রেফারেন্সে একটি স্টাইল প্রয়োগ করতে:

  • ক্ষেত্রের কোডগুলি দেখানোর জন্য Alt+ টিপুনF9
  • পটিতে "হোম" ট্যাবটি নির্বাচন করুন
  • "সম্পাদনা" গোষ্ঠীর "প্রতিস্থাপন" ক্লিক করুন
  • "কী কী সন্ধান করুন" ক্ষেত্রে টাইপ করুন ^19 REF
    • (এটি ক্যারেট-এক-নয়-স্পেস-আরএফ)
  • "প্রতিস্থাপন করুন" ক্ষেত্রে ক্লিক করুন, তবে কিছুই টাইপ করবেন না
  • "আরও" বোতামটি ক্লিক করুন
  • কথোপকথনের নীচের অংশটি "প্রতিস্থাপন" শিরোনাম হওয়া উচিত (এর পরে অনুভূমিক নিয়মের সাথে)
  • "ফর্ম্যাট" বোতামটি ক্লিক করুন এবং "স্টাইল ..." নির্বাচন করুন
  • একটি শৈলী চয়ন করুন (যেমন "তীব্র রেফারেন্স") এবং ওকে ক্লিক করুন
  • এটি এখন "প্রতিস্থাপন করুন" ক্ষেত্রের অধীনে আপনার চয়ন করা স্টাইলটি দেখানো উচিত
  • আপনি যদি সাহসী বোধ করেন তবে "প্রতিস্থাপন করুন" এবং প্রতিটি রেফারেন্স ফিল্ড কোডের স্টাইল পৃথকভাবে প্রতিস্থাপন বা এড়াতে "পরবর্তী খুঁজুন" এবং "প্রতিস্থাপন" ব্যবহার করে ক্লিক করুন
  • ক্ষেত্রের কোডগুলি লুকানোর জন্য Alt+ টিপুনF9

অনুসন্ধান এবং প্রতিস্থাপনে বিশেষ কোড সম্পর্কিত আরও তথ্যের জন্য এই পৃষ্ঠাটি দেখুন ।

এখানে একটি ম্যাক্রো যা \* mergeformatক্ষেত্রগুলির প্রতিটিটিতে স্যুইচ যুক্ত করবে । আপনি যদি কোনও ফিল্ড আপডেট করেন তবে ফর্ম্যাটটি হারাতে না দেওয়া এই স্যুইচটি প্রয়োজনীয়। আপনি ম্যাক্রোটিকে একটি কীস্ট্রোককে বরাদ্দ করতে পারেন এবং প্রতিবার আপনি কীস্ট্রোক টিপলে একবারে ক্ষেত্রগুলির মধ্যে একবারে পদক্ষেপ নেবে। প্রক্রিয়াটি স্বয়ংক্রিয় করতে আপনি পুরো দস্তাবেজটি লুপ করতে ম্যাক্রো সম্পাদনা করতে পারেন।

Sub mf()
'
' mf Macro
' Find cross references and add \* mergeformat
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^19 REF"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:="\* mergeformat "
    Selection.Find.Execute
End Sub

আসলে বেশিরভাগ রেফারেন্স যদি না হয় সমস্ত সাধারণ পাঠ্যের সাথে ডিফল্টরূপে তৈরি হয়। উত্তরের জন্য আপনাকে ধন্যবাদ, তবে এই ক্ষেত্রে আমি একবারে সবার জন্য স্টাইলটি আপডেট করার আগে ম্যানুয়ালি প্রত্যেকের স্টাইলটি সেট করতে হবে। আমি এমন একটি পদ্ধতির সন্ধান করছিলাম যা প্রক্রিয়াটির প্রথম ধাপটি স্বয়ংক্রিয় করতে পারে
ড্রেক

6
বাহ, আমি খুঁজে পেতে / প্রতিস্থাপনের এই উন্নত ব্যবহারগুলি জানতাম না, খুব সহায়ক
ড্রক

6
আপনি উত্তর ঘন জ্ঞান একটি সামান্য মণি। নিজস্ব উইকি মূল্যবান!
হতাশার গ্রিমেস

5
যীশু খ্রিস্ট ... এটি দুর্দান্ত কাজ করে তবে বিষয়টি হ'ল ক্রস-রেফারেন্সগুলিতে কোনও স্টাইল প্রয়োগ করা এত কঠিন কেন !? ;)
লেনিয়েল ম্যাককাফেরি

ম্যাকের এমএস ওয়ার্ড ১.9.৯.১ এ, এটি কাজ করে (ম্যাক্রোটি চেষ্টা করেনি), তবে সন্ধান / প্রতিস্থাপনটি হোম ফিতাটিতে নেই (আমার মনে হয়?), পরিবর্তে মেনুতে সম্পাদনা-> অনুসন্ধান-> উন্নত সন্ধান করুন এবং প্রতিস্থাপন করুন ...
মাইকেল

5
  • ক্ষেত্রের কোডগুলি দেখানোর জন্য Alt+ টিপুনF9
  • সমস্ত ক্রস রেফারেন্সগুলিতে CHARFORMAT যুক্ত করতে নিম্নলিখিত ম্যাক্রোটি ব্যবহার করুন। এই ম্যাক্রোটি ইতিমধ্যে সেখানে না থাকলে ফিল্ডে স্ট্রিং যুক্ত করে।

    Sub SetCHARFORMAT()
    '
    ' Set CHARFORMAT switch to all {REF} fields. Replace MERGEFORMAT.
    '
    '
        Dim oField As Field
        Dim oRng As Range
        For Each oField In ActiveDocument.Fields
        'For Each oField In Selection.Fields
            If InStr(1, oField.Code, "REF ") = 2 Then
                If InStr(1, oField.Code, "MERGEFORMAT") <> 0 Then
                    oField.Code.Text = Replace(oField.Code.Text, "MERGEFORMAT", "CHARFORMAT")
                End If
                If InStr(1, oField.Code, "CHARFORMAT") = 0 Then
                    oField.Code.Text = oField.Code.Text + "\* CHARFORMAT "
                End If
            End If
        Next oField
    
    
    End Sub
  • "সূক্ষ্ম রেফারেন্স" শৈলীর সাথে সমস্ত ক্রস রেফারেন্সগুলি ফর্ম্যাট করতে এই ম্যাক্রোটি ব্যবহার করুন (আপনার কাছে এমন স্টাইল রয়েছে তা নিশ্চিত করুন এবং সেই ক্ষেত্রের কোডগুলি দেখানো হয়েছে):

    Sub SetCrossRefStyle()
    '
    ' Macro to set styole of all cross references to "Subtle Reference"
    '
    '
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Style = ActiveDocument.Styles( _
            "Subtle Reference")
        With Selection.Find
            .Text = "^19 REF"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchKashida = False
            .MatchDiacritics = False
            .MatchAlefHamza = False
            .MatchControl = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub
  • ক্ষেত্রের কোডগুলি লুকানোর জন্য Alt+ টিপুনF9


3

সাইবার্গ দ্বারা আপলোড করা ম্যাক্রো সম্পাদনা করে, আমরা সহজেই ক্ষেত্রের কোডগুলি দেখানো এবং লুকিয়ে রাখতে স্বয়ংক্রিয়ভাবে পারি। যাতে প্রতিবার আমরা আপডেট করতে চাইলে আমাদের টগল ফিল্ড কোডগুলি ব্যবহার করতে হবে না। ফিল্ড কোড টগল যুক্ত করতে আমি নিম্নলিখিত কোডগুলি ব্যবহার করেছি।

ActiveDocument.ActiveWindow.View.ShowFieldCodes = False

সম্পূর্ণ ম্যাক্রো নিম্নরূপ:

Sub SetCrossRefStyle()
'
' Macro to set styole of all cross references to "Subtle Reference"
'
'
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles( _
    "Subtle Reference")
With Selection.Find
    .Text = "^19 REF"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchKashida = False
    .MatchDiacritics = False
    .MatchAlefHamza = False
    .MatchControl = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
End Sub

এই প্রথম আমি ম্যাক্রোগুলি ব্যবহার করে শব্দটির সাথে আমার কাজের গতি বাড়িয়ে তুলছি। ধন্যবাদ সাইবার্গ এই জাতীয় সহায়ক ম্যাক্রোর জন্য


0

দ্রুত এবং কার্যকর উপায়:

  1. আপনি উল্লেখগুলির জন্য যে বিন্যাসটি ব্যবহার করতে চান তার সাথে কিছু পাঠ্য নির্বাচন করুন।
  2. ফিতা মধ্যে হোম ট্যাব নির্বাচন করুন ।
  3. সাধারণ স্টাইলে ডান ক্লিক করুন এবং নির্বাচনের সাথে মেলে তুলতে সাধারণ আপডেট করুন
  4. Ctrl+ A, সহ রেফারেন্স আপডেট করুন F9

0

এই ম্যাক্রো বর্তমান কার্সার অবস্থানে ক্রস রেফারেন্স সন্নিবেশ করানোর জন্য ক্রস রেফারেন্স ডায়ালগ বক্সটি খুলবে।

রেফারেন্স সন্নিবেশ করার পরে আপনি যখন এক্সরেফ সংলাপ বাক্সটি বন্ধ করেন ম্যাক্রো পুনরায় সূচনা করে সুপারসক্রিপ্টে প্রবেশ করা ক্রস রেফারেন্সটি ফর্ম্যাট করতে।

Sub XrefSuper()
'
' This opens the Cross Reference dialogue box to insert a cross reference at the current cursor position.
'   When the dialogue box is closed after inserting the reference the macro resumes to format the inserted cross reference to superscript.
'
'
Dim wc As Integer
    wc = ActiveDocument.Characters.Count

Dim dlg As Dialog
    Set dlg = Dialogs(wdDialogInsertCrossReference)
        dlg.Show 'Open dialogue and perform the insertion from the dialog box) 
                 'Macro continues after closing CrossRef dialogue box

    If wc = ActiveDocument.Characters.Count Then Exit Sub   'If we failed to insert something then exit

    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Superscript = wdToggle
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.Font.Superscript = wdToggle
End Sub

এক্সরেফ সংলাপটি কীভাবে খুলবেন সে জন্য বিশেষজ্ঞ এক্সচেঞ্জে গ্রাহাম স্ক্যানকে ধন্যবাদ ।


0

ডকুমেন্টের 'স্টোরিজ' এর মাধ্যমে লুপ করতে ডকুমেন্টের বডি, শিরোনাম, পাদচরণ এবং আকারের পাঠ্যগুলিতে স্টাইলিং প্রয়োগ করতে উপরের জবাবগুলি একত্রিত করা।

সমস্ত ক্রস রেফারেন্সগুলিতে "তীব্র রেফারেন্স" শৈলী প্রয়োগ করতে কেবল নীচে সেটক্রসআরফস্টাইল () ম্যাক্রো কল করুন।

Sub m_SetCHARFORMAT(textRanges As Collection)
' https://superuser.com/questions/13531/is-it-possible-to-assign-a-specific-style-to-all-cross-references-in-word-2007
'
' Set CHARFORMAT switch to all {REF} fields. Replace MERGEFORMAT.
' Requires ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
'
    Dim oField As Field
    Dim oRng As Range
    For Each oRng In textRanges
        For Each oField In oRng.Fields
            If InStr(1, oField.Code, "REF ") = 2 Then
                If InStr(1, oField.Code, "MERGEFORMAT") <> 0 Then
                    oField.Code.Text = Replace(oField.Code.Text, "MERGEFORMAT", "CHARFORMAT")
                End If
                If InStr(1, oField.Code, "CHARFORMAT") = 0 Then
                    oField.Code.Text = oField.Code.Text + "\* CHARFORMAT "
                End If
            End If
        Next oField
    Next oRng
End Sub


Sub m_AddCrossRefStyle(textRanges As Collection)
' https://superuser.com/questions/13531/is-it-possible-to-assign-a-specific-style-to-all-cross-references-in-word-2007
'
' Macro to set style of all cross references to "Intense Reference"
' Requires ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
'
    For Each oRng In textRanges
        oRng.Find.ClearFormatting
        oRng.Find.Replacement.ClearFormatting
        oRng.Find.Replacement.Style = ActiveDocument.Styles("Intense Reference")
        With oRng.Find
            .Text = "^19 REF"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchKashida = False
            .MatchDiacritics = False
            .MatchAlefHamza = False
            .MatchControl = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        oRng.Find.Execute Replace:=wdReplaceAll
    Next oRng
End Sub


Function m_GetAllTextRanges() As Collection
' https://wordmvp.com/FAQs/Customization/ReplaceAnywhere.htm
' https://www.mrexcel.com/forum/excel-questions/443052-returning-collection-function.html
'
' Get text ranges in all document parts.
'
    Set m_GetAllTextRanges = New Collection
    For Each rngStory In ActiveDocument.StoryRanges
        'Iterate through all linked stories
        Do
            m_GetAllTextRanges.Add rngStory
            On Error Resume Next
            Select Case rngStory.StoryType
                Case 6, 7, 8, 9, 10, 11
                If rngStory.ShapeRange.Count > 0 Then
                    For Each oShp In rngStory.ShapeRange
                        If oShp.TextFrame.HasText Then
                            m_GetAllTextRanges.Add oShp.TextFrame.TextRange
                        End If
                    Next
                End If
                Case Else
                    'Do Nothing
            End Select
            On Error GoTo 0
            'Get next linked story (if any)
            Set rngStory = rngStory.NextStoryRange
        Loop Until rngStory Is Nothing
    Next
End Function

Sub SetCrossRefStyle()
'
' 1. Get all text ranges since Selection.Find only works on document body, but not on headers/footers
' 2. Add CHARFORMAT to make styling persistent
' 3. Add styling to all references
'
    Dim textRanges As Collection
    Set textRanges = m_GetAllTextRanges
    ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
    m_SetCHARFORMAT textRanges
    m_AddCrossRefStyle textRanges
    ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
End Sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.