【Word VBA】コンテンツコントロールを削除可能にするWordマクロ

最近翻訳で扱った書類にテキストの入力用のコンテンツコントロールが多数使用されているWordファイルがありました。

クライアントと相談したところ、翻訳の際にはコンテンツコントロールを削除してもよいということでした。

ところが、このコンテンツコントロールは削除できないような設定になっているのです!

プロパティの設定で、以下の項目がオンになっているとコンテンツコントロールの枠を削除できません。これでは翻訳時に原文が残ってしまうことになります。

1つ1つプロパティを開いて設定するのが面倒なので、この削除不可を一括でオフにするマクロを作ってみました。

このマクロでできること

現在の文書中のコンテンツコントロールを削除可能に設定します。

マクロの解説

For Each … Next ステートメントを使います。

関連するプロパティは LockContentControl です。

マクロの記録で簡単に調べられます。これをオフにします。

マクロ


Sub コンテンツコントロールを削除可能にする()

 Dim CC As ContentControl
 
 For Each CC In ActiveDocument.ContentControls
  CC.LockContentControl = False
 Next

End Sub

後で気づいたこと

実は、この設定をマクロで実行する必要はありませんでした(笑)。

文書内の全選択([Ctrl]+[A]のショートカットキー)のあとで、コンテンツコントロールのプロパティからダイアログを開き設定を変更すると、選択範囲内のコンテンツコントロールに対して一括で設定できました。

むやみにマクロに頼らない姿勢も重要です。サンプルコードです。ひとまず作りました、ということで紹介しました。

関連記事

トップへ戻る