- 締切済み
Word2003で条件によって文章を非表示にする
定型の契約書の文章があります。 社名や契約期間などを契約毎にタイプ打ちして利用していると修正もれ等があるので 必要な項目をエクセルに入力し、ワードに差込して利用しています。 契約の内容によって、契約書の条文や数値が変更になりますが、これもパターンがあるので エクセル上で条件を選択して、ワード上に表示するようにしたいのです。 エクセル上で条件に応じて差し込む文章を作って差し込むとワード上での体裁(タブや改行、 左端揃えなど)が整いません。 ワード上で文章の体裁を整えた文章を入力しておいて、条件をエクセルからワードに渡して、 その値に応じて、表示、非表示が切り替えられたらと思っています。 尚、その際、単に文字が見えなくなるだけでなく、非表示になったスペースをカットしてその後の 文章が上に詰めて表示できないでしょうか? 例えば 第1条 ●●株式会社(「甲」という)は株式会社▲▲(「乙」という)とは・・・・ 第2条 甲は乙に金123,456円を支払うものとする。 第3条 支払先 AA銀行 BB支店 普通預金 123456 のような条文があったとして、第2条で支払いがあれば第3条の支払先についての条文は必要 だが、支払いがない場合は第3条の条文自体をなくし、それ以下の条文が繰り上がるように したいのです。 支払いがあるかどうかの判定は差込元のエクセルで判定させても良いかと思っています。 良い方策をお知りの方がいらっしゃいましたらお教え願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- enunokokoro
- ベストアンサー率74% (3543/4732)
> フィールドコード使った事なくて、あまり良くわかりません 困りましたね。簡単な説明だけでも理解できる質問者さんでしたら 補足されたことにも説明が単純にできるので楽だったのですが。 フィールドコードの中でも解りにくいLISTNUMフィールドについて 説明サイトを紹介しただけであって、サイトの説明だけで理解して くれれば、回答側としては難しいことをしていることをしたいのを 希望していることに回答する面倒があることも分かりますよね。 さて、ここからは簡単ながら条文が繰り上がるようにする部分だけ のIF文の書き方を説明します。 まずは、こちら↓を参考にしてください。 http://office.microsoft.com/ja-jp/word-help/HP005187676.aspx IFフィールドの使い方の例のみなので参考程度です。 IF文だけに特化して説明しているサイトは私は知らないです。 単純な条件で数値など切り替えるだけならば、フィールドコードの ダイアログでフィールドのプロパティに書けば済みますが、今回の ようなIFフィールドに段落記号や他のフィールドコードなどが挿入 されるようなものは、最初から手動で作成する必要があります。 フィールドコードは、[ Ctrl+F9 ]キーで挿入される空のフィールド に直接フィールドコードのフィールド名を記載して利用することも できます。(一部対応していないフィールドコードもあります) http://www.relief.jp/itnote/archives/002837.php その意味では、Excelの関数に似た部分ですね。 今回は条文が繰り上がるようにするためには、第2条での項目にある 段落記号の前にカーソルを置きます。 これは、条件が満たされない場合には空白として何も記載されずに、 条件が満たされた場合はIF文に挿入した段落記号にて改行を挿入し、 あたかも新しい段落が挿入されたようにするため必要な方法です。 [ Ctrl+F9 ]キーで{ }が挿入されたらその中に以下を記載。 { IF = "" "" "" } 「=」の前に比較するものを用意します。 例えばブックマークを挿入したとします。 [ Alt+F9 ]キーでフィールドコードを表示するようにします。 そうするとブックマークは以下のようなものになります。 { REF 支払 }このREFフィールドはフィールドコードの分類名に 同じ名前がなければブックマーク名のみでも可能です。 http://office.microsoft.com/ja-jp/word-help/HP005186139.aspx なので、{ IF { 支払 }= "" "" "" }のように直接記載することも 可能なのです。 { IF { 支払 }= "" "" "" }で「=」の後ろに必要な項目を記載。 { IF { 支払 }= "支払う" "支払先の銀行名など" "" } これで支払う場合は銀行名などが表示されます。 3番目の""に何も記載しないのは改行されないで空白にするため。 支払先がある" "の支払先の前に[ Enter ]キーで改行を入れます。 { IF { 支払 }= "支払う" "←┘ 支払先の銀行名など" "" } 支払先の前にLISTNUMフィールドを挿入。 { IF { 支払 }="支払う" "←┘ { LISTNUM 契約書 \l 1 }支払先 銀行名その他" ""} これで基本的なIF文の例と同じになります。 LISTNUMフィールドではユーザー独自のリスト名で作成してますが、 既定のリストでも可能です。その場合は第と条は別途記載します。 番号の後ろのスペースやタブも設定する必要があります。
- enunokokoro
- ベストアンサー率74% (3543/4732)
何故、Word文書への差し込みをするの? 修正漏れについては、ブックマークの機能やプロパティを 使ったフィールドコードで対応できると思います。 差し込みをするということは、複数企業に一斉に配布する ものなのでしょうか? そうではなく、取引が成立したときに個別にかわす契約書 として作成するものなのでしょうか? 個別に作成するなら、Excel側でデータを用意する意味が あるとは思いませんが、管理するために必要なのですか? そうでないなら差し込み印刷を使うメリットはないかと。 > ワード上での体裁(タブや改行、左端揃えなど)が 現在どのように体裁が整わないのでしょうか? 変化する語句だけ変更できればよいのですよね? それなのに、体裁が整わないというのはどういうこと? > 条文が繰り上がるようにしたい これについては、対処方法はありますが、条文の段落への 番号が段落番号の機能を使っているなら難しいかと。 アウトラインとしてLISTNUMフィールドで番号付けをして IF文で対応はできます。 [ LISTNUM ]フィールド http://www.office-qa.com/Word/wd50.htm IF文の例:(IF文内の←┘は段落記号を表す) { IF { 支払 }="支払う" "←┘ { LISTNUM 契約書 \l 1 }支払先 銀行名その他" ""} 支払いの判定をExcelでするよりもWordに判断させての 対応のほうが簡単だと思います。 添付画像は支払というブックマークの内容で判断したもの
補足
早速の回答有難うございます。 しかし、フィールドコード使った事なくて、あまり良くわかりません・・・ 欲張ってやりたい事をたくさん書いてしまってそれを回答下さったのですが、よけい判りづらくなってしまいました(>_<) そもそもIF文の記載方法自体が不明です。 (1)LISTNUMは条文の番号を自動で採番してくれる関数?みたいなものですよね? で、IF文はリンクの説明のフィールドコードのプロバティに記載するって事ですね? 参考例で IF { 支払 }="支払う" "←┘ { LISTNUM 契約書 \l 1 }支払先 銀行名その他" ""} とありましたが、 挿入→フィールド→フィールドの名前(Ifを選択して)フィールドプロパティの詳細(フィールドコード)にコピペしても支払うより後の記載が張り付かず、正しく再現しませんでした。 リンクのほかの所にIF文の記述を説明した所がないか探しましたが、見つけられませんでした。