修正箇所を蛍光ペンで一括マークする

(ChatGPT) 
あなたはブロガーです。よいイントロダクションの記事を提案してください。論文のrevisionを提出する際に、変更箇所をハイライトして、と言われることがありますが、作業が大変です。修正履歴をみながら、そこに手作業でハイライトする。そこに人為的なミスがでてきたりする。そのような大変さをイントロダクションに盛り込んで下さい。

学術論文の執筆は、研究者にとって重要なプロセスであり、自分の研究成果を世界に発信する手段となります。しかし、論文が学術誌に掲載されるまでの道のりは、多くの場合、査読や修正が繰り返される長いものです。特に、編集者や査読者からの指摘に応じて、論文を修正しなければならない場面は、誰もが経験するでしょう。

修正の過程で、編集者から変更箇所をハイライトして提出するよう指示されることがありますが、これが意外と大変な作業です。修正履歴を見ながら手作業でハイライトを入れると、どうしても人為的なミスが発生しやすく、繰り返しの作業によりストレスや疲労が溜まることも少なくありません。

本記事では、Wordのマクロを使って、一括で原稿を修正する方法を紹介します。

今回の記事を作成するにあたっての、参考記事は、こちらです。[1]理系大学院生. 論文リバイス時の変更履歴を一括で蛍光マーカー着色する方法 wordにて. 研究関連のブログ. Published 1642232153. Accessed April 23, 2023. … Continue reading

“ジャーナルによっては,初投稿時から変化した箇所を蛍光マーカーで分かるようにしたwordファイルの提出も必要になることがあるかと思います。そんな時に,マクロでwordの変更履歴挿入箇所を一発で蛍光マーカーしてくれる機能があったので紹介します”

論文リバイス時の変更履歴を一括で蛍光マーカー着色する方法 wordにて – 研究関連のブログ (hatenadiary.com)

マクロ自体は、他にも幾つか同様の記事がありました。[2]【Word VBA】変更履歴の挿入箇所を蛍光ペンで着色するWordマクロ. みんなのワードマクロ. Published April 11, 2017. https://www.wordvbalab.com/code/5963/ [3]【Word VBA】変更箇所を蛍光ペンで着色するWordマクロ. みんなのワードマクロ. Published March 10, 2014. https://www.wordvbalab.com/code/3146/

準備するもの

  • 修正履歴を記録したWordファイル

校閲機能を利用して初回投稿時からの修正履歴を記録したWordファイルを準備して下さい。

マクロの実行

ツール > マクロ > Visual Basic Editor を選択します。

挿入 > 標準モジュールを選択

Moduleに下記コードをコピーして下さい。参考記事から一部コメント等を追記・変更しています。

Sub 変更履歴_追記箇所を蛍光ペンの黄色にする()

  ' 変数を宣言
  Dim myRev As Revision
  Dim newDoc As Document ' チェック用文書

  ' 変更履歴の記録をオフにする
  ActiveDocument.TrackRevisions = False

  ' 文書が保存されている場合に実行
  If ActiveDocument.Path <> "" Then
    If ActiveDocument.Saved = True Then
      ' アクティブな文書に基づいて新しい文書を作成
      Set newDoc = Documents.Add(Template:=ActiveDocument.FullName)
    Else
      ' 実行前に文書を保存するようユーザーに促す
      If MsgBox("文書を保存してから実行します。" & vbCr & _
                "保存しますか?", vbYesNo, "実行前の確認") = vbYes Then
        ActiveDocument.Save
        Set newDoc = Documents.Add(Template:=ActiveDocument.FullName)
      Else
        ' ユーザーが文書の保存を選択しない場合、マクロを終了
        Exit Sub
      End If
    End If
  Else
    ' マクロ実行前に文書を保存するようユーザーに指示するメッセージを表示
    MsgBox "現在のファイルを保存してから実行してください。"
    Exit Sub
  End If

  ' チェック用文書のハイライトを解除
  newDoc.Range.HighlightColorIndex = wdNoHighlight

  ' 新しいチェック用文書の各リビジョンを処理
  For Each myRev In newDoc.Revisions

    ' リビジョンのタイプを確認
    Select Case myRev.Type

      ' リビジョンが挿入の場合
      Case wdRevisionInsert
        With myRev.Range
          ' 挿入されたテキストを黄色でハイライト表示
          .HighlightColorIndex = wdYellow
          ' リビジョンを承認
          .Revisions.AcceptAll
        End With

      ' リビジョンが挿入以外の場合
      Case Else
        With myRev.Range
          ' リビジョンを承認
          .Revisions.AcceptAll
        End With

    End Select

  Next
End SubCode language: PHP (php)

左上の再生ボタンをクリック→現在の文書の保存を進められるので「はい」をクリック。

新しい文書が作成され、修正箇所がハイライトされました。

ChatGPTによる解説

(ChatGPT) 以下のコードについて解説してください。

このコードは、Microsoft Wordのマクロで、挿入されたテキストを黄色でハイライト表示する機能を提供します。以下で各部分の解説を行います。

  1. 変数の宣言
    • Dim myRev As RevisionRevision オブジェクトの変数 myRev を宣言します。
    • Dim newDoc As DocumentDocument オブジェクトの変数 newDoc を宣言します。これはチェック用の文書です。
  2. 変更履歴の記録をオフにする
    • ActiveDocument.TrackRevisions = False:アクティブな文書の変更履歴の記録をオフにします。
  3. 文書が保存されている場合に実行
    • この部分では、アクティブな文書が保存されているかどうかを確認し、保存されている場合はチェック用の新しい文書を作成します。保存されていない場合は、ユーザーに保存を促します。ユーザーが保存を拒否した場合は、マクロが終了します。
  4. チェック用文書のハイライトを解除
    • newDoc.Range.HighlightColorIndex = wdNoHighlight:新しいチェック用文書のすべてのハイライトを解除します。
  5. 新しいチェック用文書の各リビジョンを処理
    • この部分では、For Each ループを使用して、新しいチェック用文書内の各リビジョンを処理します。
  6. リビジョンのタイプを確認
    • Select Case myRev.Type:リビジョンのタイプに応じて、次の処理を行います。
      • 挿入の場合(Case wdRevisionInsert):
        • With myRev.Range:リビジョンの範囲に対して次の操作を行います。
          • 挿入されたテキストを黄色でハイライト表示(.HighlightColorIndex = wdYellow)。
          • リビジョンを承認(.Revisions.AcceptAll)。
      • 挿入以外の場合(Case Else):
        • With myRev.Range:リビジョンの範囲に対して次の操作を行います。
          • リビジョンを承認(.Revisions.AcceptAll)。

これにより、挿入されたテキストが黄色でハイライト表示され、その他のリビジョンが承認される新しいチェック用文書が作成されます。

応用1: マーカーをすでに入れている原稿に、修正箇所にマーカーを追記したい。

現在のマクロでは、すでにマーカーが引いている箇所は解除されるようになっています。追記したい場合は、

' チェック用文書のハイライトを解除
 newDoc.Range.HighlightColorIndex = wdNoHighlight

の箇所を削除するか、先頭に ‘ をいれてコメントアウト(コメントとして残し、実行コードからは外す)して、

' チェック用文書のハイライトを解除
' newDoc.Range.HighlightColorIndex = wdNoHighlightCode language: PHP (php)

としてください。

応用2: マーカーは入れたいが、修正履歴は残したい。

応用1と同様の方法となります。

' リビジョンを承認
.Revisions.AcceptAll

の箇所が2箇所あるので、それぞれ削除かコメントアウトしてください。

応用3: 黄色マーカー以外でマークしたい

Microsoft Word VBAで使用できる色は、WdColorIndex 列挙型を通じて指定できます。

例:

  • wdTurquoise:ターコイズ
  • wdBrightGreen:明るい緑
  • wdPink:ピンク
  • wdYellow:黄色
  • wdGray50:グレー(50%)
  • wdGray25:グレー(25%)
  • wdNoHighlight:ハイライトなし

これらの色を使用するには、HighlightColorIndex プロパティにこれらの定数を代入します。

現在、

' 挿入されたテキストを黄色でハイライト表示
 .HighlightColorIndex = wdYellow

となっているので、

例えば、挿入されたテキストを明るい緑色でハイライト表示するには、wdYellowをwdBrightGreenに変更して下さい。

' 挿入されたテキストを黄色でハイライト表示
 .HighlightColorIndex = wdBrightGreen

追記(2023/09/09) 削除箇所への対応

Wordの修正箇所を蛍光ペンで一括マークすることに加えて、削除箇所を「文字に戻して」「赤字に取り消し線」で反映したい場合は、下記のようにコードを追加します。

Sub 変更履歴_追記箇所を蛍光ペンの黄色にする()

  ' 変数を宣言
  Dim myRev As Revision
  Dim newDoc As Document ' チェック用文書

  ' 変更履歴の記録をオフにする
  ActiveDocument.TrackRevisions = False

  ' 文書が保存されている場合に実行
  If ActiveDocument.Path <> "" Then
    If ActiveDocument.Saved = True Then
      ' アクティブな文書に基づいて新しい文書を作成
      Set newDoc = Documents.Add(Template:=ActiveDocument.FullName)
    Else
      ' 実行前に文書を保存するようユーザーに促す
      If MsgBox("文書を保存してから実行します。" & vbCr & _
                "保存しますか?", vbYesNo, "実行前の確認") = vbYes Then
        ActiveDocument.Save
        Set newDoc = Documents.Add(Template:=ActiveDocument.FullName)
      Else
        ' ユーザーが文書の保存を選択しない場合、マクロを終了
        Exit Sub
      End If
    End If
  Else
    ' マクロ実行前に文書を保存するようユーザーに指示するメッセージを表示
    MsgBox "現在のファイルを保存してから実行してください。"
    Exit Sub
  End If

  ' チェック用文書のハイライトを解除
  newDoc.Range.HighlightColorIndex = wdNoHighlight

  ' 新しいチェック用文書の各リビジョンを処理
  For Each myRev In newDoc.Revisions

    ' リビジョンのタイプを確認
    Select Case myRev.Type

      ' リビジョンが挿入の場合
      Case wdRevisionInsert
        With myRev.Range
          ' 挿入されたテキストを黄色でハイライト表示
          .HighlightColorIndex = wdYellow
          ' リビジョンを承認
          .Revisions.AcceptAll
        End With

      ' リビジョンが削除の場合
      Case wdRevisionDelete
        With myRev.Range
          .Revisions.RejectAll
          .Font.StrikeThrough = True
          .Font.Color = vbRed
        End With

      ' リビジョンが挿入以外の場合
      Case Else
        With myRev.Range
          ' リビジョンを承認
          .Revisions.AcceptAll
        End With

    End Select

  Next
End SubCode language: PHP (php)

最後に

英文校正会社に提出した際に、提出時の修正履歴が全部承認され、追記分だけ履歴が残るように編集されてしまうことがあります。その場合は、英文校正時に修正履歴は消さないようお願いするか、予めマーキングしたものを提出されると良いと思います。

この投稿を見ている方は、査読対応中の方々も多いと思います。研究成果をまとめ、論文を執筆し、査読を受け、修正に取り組むといった一連のプロセスは、非常に困難でありながらも、研究者にとって大切な経験であると認識しています。

私自身、何度かリジェクトを受けた経験もあります。そのたびに下の言葉を思い出しています。皆さんの論文が、無事にアクセプトされることを心から願っています。

“研究者には論文を書く能力が必要ですが、論文を世に出す力も必要です。論文を書くうえで重要なのは知性ですが、論文を出すときに重要なのはリジェクトされたときの落胆、怒り、失望、疑念などの感情をコントロールする力、揺るぎない信念、状況を見極める客観性や判断力です”

リジェクトへの怒り・落胆【論文を出す力】 – 日本の科学と技術 (scienceandtechnology.jp)

(Stable Diffusion –prompt “Robot having a color marker, marking the manuscripts”)

References

References
1 理系大学院生. 論文リバイス時の変更履歴を一括で蛍光マーカー着色する方法 wordにて. 研究関連のブログ. Published 1642232153. Accessed April 23, 2023. https://master2.hatenadiary.com/entry/2022/01/15/%E8%AB%96%E6%96%87%E3%83%AA%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E6%8F%90%E5%87%BA%E6%99%82%E3%81%AE%E5%A4%89%E6%9B%B4%E5%B1%A5%E6%AD%B4%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
2 【Word VBA】変更履歴の挿入箇所を蛍光ペンで着色するWordマクロ. みんなのワードマクロ. Published April 11, 2017. https://www.wordvbalab.com/code/5963/
3 【Word VBA】変更箇所を蛍光ペンで着色するWordマクロ. みんなのワードマクロ. Published March 10, 2014. https://www.wordvbalab.com/code/3146/

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です