DTP作業者にとっての難易度 ★★☆☆☆(2)
Excelのセル背景色をInDesignレイアウトに反映する方法を考えてみました。Excel側での作業
Excelのセル背景色は1〜56のColorIndexを持っています。今回はマクロでColorIndexを文字(「#00」など)にすることを考えました。使用する色に関する注意
Excelのカラーパレットには70色が表示されますがColorIndexは1〜56しか存在しません。つまり番号が重複して使われることになります。また、配色(テーマ)を切り替えるとパレット上の色が変わりColorIndexが変わってしまいます。これらの問題を回避し最も安心なのはカラーパレット下部の「標準の色」を使うことでしょう。中でも「黄」「オレンジ」「薄い緑」は文字も読みやすく使いやすいと思います。マクロの実行
サンプルファイルのマクロ「A_ind_charCel」は文字が存在するセル(背景色があるセルのみ)にColorIndexを付加します。「B_ind_allCel」はすべてのセルにColorIndexを付加します。マクロはアンドゥ(元に戻す)が効きませんので、かならずバックアップをとってから実行してください。※「黄」「オレンジ」「薄い緑」以外を使用している場合、複数セルが結合されている箇所にはColorIndexが複数付加されます。
InDesign側での作業
InDesign側で「#00」などの文字を手がかりに背景色を指定するにはいくつか方法があります。スクリプトでスウォッチを指定する
表組みのセルを選択してサンプルスクリプト「A-ColorIndex2swatch」を実行すると、ColorIndexのあるセルにスウォッチ(および濃淡)を適用します。スクリプトファイルの上部にはColorIndex番号、スウォッチ名、濃淡が書かれていますので、必要に応じて書き換えてご使用ください。スクリプトでセルスタイルを指定する
同様に表組みのセルを選択してサンプルスクリプト「B-ColorIndex2cellStyle」を実行します。必要に応じてスクリプトファイルの上部のColorIndex番号、セルスタイル名を書き換えてご使用ください。検索/置換で段落スタイルを適用する
「#00」などの文字列を検索して段落スタイルを適用します(サンプルファイルにクエリを用意しました)。※段落スタイルで背景を塗りつぶすためには様々な条件が整っている必要があります。多くの場合は先にご紹介したスクリプトでスウォッチあるいはセルスタイルを適用したほうがいいと思います。
しっかりテストした上でご使用ください。
サンプルデータはこちら《cellColor2InDesign_240517e.zip》です。