Word VBAでブックマークを使って文字列を置換する方法|初心者向け解説

パソコンパソコン・スマホ教室
スポンサーリンク

Wordの文書作成で、特定の場所に「しおり」を挿し、後からその位置に簡単にアクセスしたり、内容を変更したりできる便利な機能が「ブックマーク」です。今回は、このブックマークをVBA(Visual Basic for Applications)を使って操作し、指定した文字列を置換する方法を、初心者の方にもわかりやすく解説します。

スポンサーリンク

ブックマークとは?

PowerPointのイメージ

PowerPointのイメージ

まず、ブックマークとは、Word文書内の特定の位置や範囲に名前を付けて目印をつける機能です。これにより、文書が長くても、後からその位置にすぐにジャンプしたり、内容を変更したりすることができます。

例えば、長文のレポートの中で「はじめに」と書かれた部分にブックマークを設定しておけば、後からその部分にすぐに移動して内容を編集することができます。

VBAでブックマークを操作する準備

VBAを使ってWordを操作するためには、まずVBAエディターを開く必要があります。以下の手順で開いてみましょう。

  1. Wordを開き、Altキーを押しながらF11キーを押します。
  2. VBAエディターが開きます。
  3. 左側の「VBAProject(あなたの文書名)」を右クリックし、「挿入」→「モジュール」を選択します。
  4. 新しく挿入されたモジュールに、後で紹介するコードを貼り付けます。

これで、VBAを使った操作の準備が整いました。

ブックマークを使って文字列を置換するVBAコード

次に、VBAを使ってブックマーク内の文字列を置換するコードを紹介します。以下のコードを先ほど挿入したモジュールに貼り付けてください。

Sub ReplaceBookmarkText()
Dim bm As Bookmark
Dim bmRange As Range
Dim oldText As String
Dim newText As String

' 置換対象のブックマーク名を設定
Set bm = ActiveDocument.Bookmarks("YourBookmarkName")

' ブックマークが存在する場合
If Not bm Is Nothing Then
' ブックマークの範囲を取得
Set bmRange = bm.Range

' 置換前と置換後の文字列を設定
oldText = "置換前の文字列"
newText = "置換後の文字列"

' 範囲内で文字列を置換
bmRange.Find.Execute FindText:=oldText, ReplaceWith:=newText, Replace:=wdReplaceAll
Else
MsgBox "指定したブックマークが見つかりません。"
End If
End Sub

このコードでは、指定したブックマーク内の「置換前の文字列」を「置換後の文字列」に一括で置換します。ブックマーク名や置換する文字列を適宜変更して使用してください。

コードのポイント

  • ブックマークの取得ActiveDocument.Bookmarks(“YourBookmarkName”)で、指定した名前のブックマークを取得します。
  • 範囲の取得bm.Rangeで、ブックマークが設定された範囲を取得します。
  • 文字列の置換bmRange.Find.Executeを使って、指定した範囲内で文字列を検索し、置換します。

実際の使用例

例えば、契約書の中で「契約者名」をブックマークとして設定しておき、その部分に「田中太郎」から「佐藤花子」に変更したい場合、以下のようにコードを変更します。

Sub ReplaceContractorName()
Dim bm As Bookmark
Dim bmRange As Range
Dim oldName As String
Dim newName As String

' 置換対象のブックマーク名を設定
Set bm = ActiveDocument.Bookmarks("ContractorName")

' ブックマークが存在する場合
If Not bm Is Nothing Then
' ブックマークの範囲を取得
Set bmRange = bm.Range

' 置換前と置換後の名前を設定
oldName = "田中太郎"
newName = "佐藤花子"

' 範囲内で名前を置換
bmRange.Find.Execute FindText:=oldName, ReplaceWith:=newName, Replace:=wdReplaceAll
Else
MsgBox "指定したブックマークが見つかりません。"
End If
End Sub

このように、ブックマークを活用することで、文書内の特定の部分を効率的に編集することができます。

よくある質問や疑問

Q1: ブックマークが見つからない場合、どうすればよいですか?

ブックマーク名が正確かどうかを確認してください。大文字と小文字は区別されますので、正確な名前を入力する必要があります。また、ブックマークが文書内に存在するかも確認してください。

Q2: 複数のブックマークを一度に置換する方法はありますか?

はい、複数のブックマークをループ処理で順番に処理することができます。Bookmarksコレクションを使って、文書内のすべてのブックマークを取得し、各ブックマーク内の文字列を置換することが可能です。

Q3: 置換後にブックマークが消えてしまうことはありますか?

はい、Find.Executeメソッドで文字列を置換すると、ブックマークが削除されることがあります。ブックマークを維持したい場合は、Find.Executeメソッドを使わずに、RangeオブジェクトのTextプロパティを直接変更する方法を検討してください。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Word VBAを使ってブックマーク内の文字列を置換する方法について解説しました。ブックマークを活用することで、文書内の特定の部分を効率的に編集することができます。VBAを使った操作は最初は難しく感じるかもしれませんが、少しずつ慣れていけば、作業の効率が大幅に向上します。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました