今年はLibreOfficeで年賀状の宛名を印刷したので、やり方をメモしておきます。去年まではMicrosoft Wordの差込印刷を使っていたのですが、さすがにdocファイルをWriterで開いても使える状態ではなかったので、Libreでイチから作り直しました。

やりたいことはこんな感じです。

  • 官製はがきに宛名印刷
  • 住所録は別ファイルにして差し込み印刷
  • 宛名は縦書き
  • 住所のアラビア数字は漢数字に直して印刷
  • 相手の名前は3人まで併記
  • 郵便番号も印刷

今回は、Calcで住所録を作って、それをWriterで作ったレイアウトに流し込むことにします。住所録は「データベース」としてLibreOfficeに認識させると、Writerで「差し込み印刷フィールド」として挿入できるようになります。郵便番号は3桁と4桁に分割した方がレイアウトしやすいので、Calcの関数で分割します。また住所録データの番地などはアラビア数字で書いておいて、印刷用にCalcの関数で漢数字に変換することにします。なお、差し込み印刷ウィザードは、裏で何が起こってるのか解りづらいので使いません。

では具体的な手順を。

住所録データを作る

Calcで新規ファイルを作り、住所録データを作ります。1行目は見出し行にして、「名前1」「名前2」「名前3」「郵便番号」「住所1」「住所2」みたいな感じで見出しを入力します。2行目以降に実際のデータを入力します。「様」などの敬称は名前に含めて一緒に印字することにします。併記する名前は、レイアウトで下揃えにする前提で入力しておきます。

img

その右の列に、郵便番号の頭3桁と末尾4桁を関数で取り出しておきます。頭3桁は「=LEFT(D2,3)」、末尾4桁は「=RIGHT(D2,4)」とかで良いでしょう。見出しは「ZIP1」「ZIP2」としておきます。

img

その右の列で、住所1と住所2を漢数字に変換します。これには文字置換のSUBSTITUTE関数を重ねて、

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E2,"1","一"),"2","二"),"3","三"),"4","四"),"5","五"),"6","六"),"7","七"),"8","八"),"9","九"),"0","〇"),"-","ー")

などとするのが良いでしょう。ハイフンは仮名の長音に変換しておきます。見出しは「ADDRESS1」「ADDRESS2」としておきます。

img

これで住所録データは完成、適当な場所に保存しておきます。

レイアウトを作る

Writerで新規ファイルを作り、宛名をレイアウトしていきます。

まずはページの設定から。メニューの[書式]→[ページ]で、「ページスタイル」のダイアログを開きます。

[ページ]タブで次のように設定します。

  • 用紙サイズ: ハガキ
  • 余白: 左右上下とも0.5cm
  • 文字の方向: 右から左へ(縦書き)

img

あと、これは必須ではないのですが、[背景]タブで、下のような年賀状をスキャンした画像を背景に設定すると、レイアウトが格段にやりやすくなります。

img

「様式」を「図」にし、「選択」ボタンを押して背景画像を読み込みます。「種類」は「位置」にしておきます。

img

これでページの設定はおしまい。[OK]を押してダイアログを閉じます。

次に、さきほど作った住所録の項目を挿入していきます。メニューの[挿入]→[フィールド]→[その他]で「フィールド」ダイアログを開きます。[データベース]タブで[検索]ボタンを押し、さっき作った住所録のファイルを選択します。

img

左の「フィールドタイプ」で「差し込み印刷フィールド」を選び、住所録の中の「ADDRESS1」「ADDRESS2」「名前1」「名前2」「名前3」を順番に文書に「挿入」します。

img

終わったらダイアログを閉じます。

img

適当に改行を入れたり、行間、インデント、文字の間隔、フォントなどをお好みに調整して、レイアウトを整えます。差出人の住所など固定で印刷する文字も入力しておきましょう。下記は一例です(DFP中楷書体、行間1.5行、住所14pt、名前18pt、差出人住所10.5pt、差出人名前14pt)。

img

郵便番号は、一度「枠」を挿入して、その中にフィールドを挿入する方法を取ります。メニューの[挿入]→[枠]で、まず3桁用の枠を作ります。設定する項目は下記のとおり。

  • [種類]タブ
    • サイズ: 幅2.1cm×高さ0.8cm、高さの「自動サイズ」のチェックは外す
    • アンカー: ページに
  • [オプション]タブ
    • 文字の方向: 左から右へ(横書き)
  • [折り返し]タブ
    • プリセット: 折り返しなし
  • [外枠]
    • 線: 形状: なし

img

img

img

img

最後に[OK]を押すと枠が挿入されるので、ドラッグして位置を合わせます(最上部から1.3cm、右から3.6cmぐらいが良いようです)。枠の中をクリックして文字列が編集できる状態にし、とりあえず「000」など仮の値を入力して、フォント、サイズ、文字の間隔を調整してレイアウトを整えます。下記は一例です。(Times New Roman、20pt、中央揃え、文字間隔10.0pt)

img

3桁用ができたら、コピー(オプションキーを押しながらドラッグ&ドロップ)して4桁用の枠を作ります。幅を2.7cm、位置を最上部から1.3cm、右から0.8cmぐらいにすると良いようです。

img

レイアウトが決まったら、仮置きの「000」や「0000」は消して、メニューの[挿入]→[フィールド]→[その他]で住所録の「ZIP1」「ZIP2」を挿入します。

img

差出人の郵便番号も、同様に枠で作っておきましょう。

  • 3桁のサイズは1.2cm×0.6cm、位置は最上部から12.3cm、右から8.3cm
  • 4桁のサイズは1.6cm×0.6cm、位置は最上部から12.3cm、右から6.6cm

ぐらいにするとちょうど良くなりました。下記は設定例です(Times New Roman、14pt、中央揃え、文字間隔4.0pt)。

img

だいたいのレイアウトができたら、実データを流し込んでイメージを確認します。[表示]→[データソース]を選ぶと住所録が表示されるので、任意のレコードを選んで[データからフィールドへ]ボタンを押すと、フィールドに具体的な値が流し込まれます。

img

なお、一度流し込むと元の「<ADDRESS1>」などの状態に戻す手段はないようです。フィールド名を確認したい場合は[表示]→[フィールド名]で実データ表示と切り替えましょう。

差し込み印刷する

レイアウトに満足できたら、[書式]→[ページ]の[背景]タブで「様式」を「色」に、「背景色」を「塗りつぶしなし」にして、年賀状のスキャン画像を消します。この状態で、レイアウトを保存しておきましょう。

img

[ファイル]→[印刷]すると「差し込み印刷を実行しますか?」というダイアログが出るので、[はい]を押します。

img

「差し込み印刷」ダイアログが開くので、差し込むレコードを指定して、「ファイルとして」出力するようにします。[OK]でファイルの保存先を聞かれるので、適当な場所に保存してください。

img

出来上がったファイルを開き、内容を確認します。宛先ごとの個別調整がある場合は、ここで実施するとよいでしょう。

なお、差し込み後のファイルにはなぜか1ページごとに余分な改ページが入っているので、[ファイル]→[印刷]で実際に印刷するとき、[LibreOffice Writer]タブで「自動的に挿入された空白ページを印刷」のチェックを外してください。

img

補足: 住所録の内部的な扱い

LibreOfficeで「住所録.ods」Calcの文書をデータベースとして認識させると、それに対応する「住所録0.odb」というファイル(LibreOffice Baseのファイル)が、マイドキュメントの下に自動的に作られるようです。と言っても、「住所録.ods」を更新して差し込み印刷をするとその内容はきちんと反映されるので、この「住所録0.odb」は一時的なワークファイルのようなものと思われます。

一度LibreOffceに認識させたデータベースを削除するには、[ツール]→[オプション]→[LibreOffice Base]→[データベース]で、「登録されたデータベース」を選んで「削除」します。ただし、ここで設定を削除してもマイドキュメントの下のodbファイルは残ったままなので、こちらは手動で削除する必要があるようです。

※バージョンメモ

  • Windows 7 Professional Service Pack 1 (32bit)
  • LibreOffice 3.6.4.3 (Build ID: 2ef5aff)