2013/12/19

表でアンカー付きオブジェクトを使う

こういう表が作りたかったんですよ。
え、何が? て思う人もいるでしょうけど、キモはセルの結合。
何も考えないでやってしまうとこうなる。

こうじゃない、こうじゃないだろ……!
表の下に塗りのオブジェクトを引けばいいんですが、位置合わせが面倒です。
  1. 結合しない状態で一度作ります。なお、行の高さは固定にします。
  2. この状態で表をコピーし、別テキストフレームにペーストします。テキストフレームは表と同一サイズにします。→A
  3. 元の表(B)からテキストを削除し、罫線も削除します。セル内余白をすべて0にします。
  4. Aの表の塗りの設定をなしにします。

  5. Aの表で、セルの結合処理をします。
  6. Aのテキストフレームを(表じゃないよ!)をカットして、Bの表の左上セルにペーストします。行の高さが固定なので入りきらないですが慌てずに。
  7. テキストフレームAが入っているセルを選択して、
  8. そのままescを押すと、セルの中が選択できます。(見えないですが、できています)
    この状態でオブジェクト>アンカー付きオブジェクト>オプションを実行。(中身が選択できていないと実行できません)
  9. 次のように設定。親文字からの間隔:カスタム
    アンカー付きオブジェクトの基準点:左上
    アンカー付き位置の基準点:左上 ※Y基準を設定してから
    X基準:列枠
    Xオフセット:0
    Y基準:列枠
    Yオフセット:0
    ※手動配置はどっちでもいいです
  10. こんな感じ。でもまだ完成じゃない!

    なんかヘン。塗りの開始位置が罫線とずれてる。
  11. これは罫線の幅分のズレです。なので、XとYのオフセット値を修正します。それぞれ、線幅の半分だけ、外に出してやります。(この表は罫線1mmです)

    表内で罫線の有無や幅が混在している時は、表Aの上端と左端での「一番太い幅」で考えます。※アンカーの基準点が左上なので

3 件のコメント:

  1. (割と古い記事みたいなので今更ですが、)
    そんなに難しいことは考えなくても、1.の状態の表から不要な横ケイを消して、B・C列の数字にベースラインシフトをかけるというのではダメなんでしょうか。

    返信削除
  2. コメントありがとうございます。
    十分それでもいいと思いますよ。
    ブログに載せるにあたってサンプルは簡単なものにしましたが、実作業ではもっと大きな表で5、6行結合しなければならず、テキスト量もセルの行高を超えるものでしたので、考えた結果です。

    返信削除
  3. 地色だけの表と、色付けしない表を重ねあわせたらどうでしょう

    返信削除