プロが教える店舗&オフィスのセキュリティ対策術

フィールドコード超初心者です。
Word2003のフィールドコードを使って、文章の表示・非表示を制御したいのですが、IFフィールドを使っても、式1・式2の設定が悪いらしく、Falseの場合の表示しか出来ません。また、IFの中の文章でなく、IFの外の文章を表示する方法がわかりません。REFを使ってみたり、ブックマークを使ってみたり色々試しているのですが。。やりたいのは、下記のような感じです。
{REF area1}
文章1
{REF area2}
文章2
{IF Setting="area1" (文章1表示)(文章2表示)}

Settingをボタンで切り替えられるようにして、文章1か文章2を表示したいです。どなたか、どうやったら良いのかお教え頂けますか?参照できるサイト情報でも結構です。よろしくお願いします!!!

A 回答 (3件)

やりたいことが、私にはよくわかりません。


IFフィールドを使ったフィールドコード内の"Setting"が何を意味して
いるとか、ブックマークを参照するREFフィールドの使い方も理解不能
です。

ヘルプにある内容は確認済みなのでしょうか?
Ifフィールド
http://office.microsoft.com/ja-jp/word/HP0518616 …
Refフィールド
http://office.microsoft.com/ja-jp/word/HP0518613 …

ボタンで切り替えるとはExcelみたいにページ内にコントロールツール
ボックスからボタンを配置しているということでしょうか?
Wordではページ内にコマンドボタンを配置しても、そのコマンドボタン
を非表示にするなどがしにくいアプリケーションですから、Excelなど
のような利用方法で可能だと思わないほうがよいですよ。

とりあえずは、IFフィールドでブックマーク名をもとにした場合の例を
提示しますので参考にしてください。

ブックマーク名 "Test1" 
ブックマークの中の文字列 "11111"

IFフィールドでブックマーク内の文字列に対応する文章を表示
{ IF { Test 1 }="11111" "文字は正しいです" "間違っています" }

Wordの基本的なことは理解しているとして、各フィールドコードがどの
部分に活用されているなどがわかっていないと、Excelの関数みたいな
理解度で利用するのは混乱するだけです。

やりたいことを具体的なことで補足されれば、回答できる範囲で追加の
アドバイスしますから、現時点でどのような設定をしているのかを曖昧
にしないで具体的に書き込んでください。
    • good
    • 0
この回答へのお礼

enunokokoro様、

 わかり辛い質問に、ご回答どうもありがとうございます。
ヘルプは良く読んだのですが、フィールドコードで何が出来るのか
わかっていないので、どう使ってよいのかわかりませんでした。
Web検索をして少しはわかったのですが、2点教えて頂けると嬉しいです。

1.IFフィールドで表示を制御するテキストを、IFフィールド外の
同ファイルに記述する事は可能か?

 例にあげて頂いた下記を例に取ると、
{ IF { Test 1 }="11111" "文字は正しいです" "間違っています" }

 例えば、下記の様に書くためのフィールドコードはありますか?

{ IF { Test 1 }="11111" {???} {???} }
文字は正しいです
間違っています

 INCLUDETEXTを使って、別ファイルの文字列を持ってくる事が
出来るのはわかりましたが、IFフィールドのあるファイルと
同じファイルに記述したいです。

2.IFフィールドの式1に入れられるもの
 IFフィールドは、参照を張って頂いたように下記の様に書きますが、
この式1部分に何を入れられるのかがわかりません。
{ IF 式1 演算子 式2 True の場合の文字列 False の場合の文字列 }

試行錯誤の結果、マクロで設定した値を DOCVARIABLEとして参照できる
事はわかったのですが、他にどう制御できるのかがわかりません。
ヘルプでは、"ブックマーク名、文字列、数値、実行結果が値になる
フィールド、または数式"と書かれていますが、この文字列や数値を
どこでどう設定出来るのか教えて頂けると助かります。私が試した
マクロでの設定だけなのでしょうか?

質問が長くてすみません。よろしくお願い致します。

お礼日時:2009/11/06 08:12

No.1です。

お礼文を読みました。

1.について
何がしたいのかが明確でないために、どのような対応方法を提示したら
よいのか迷っています。
IFフィールドを使うことで式の結果から「True の場合の文字列」または
「False の場合の文字列」を、IFフィールドに表示できることは理解して
いるのですよね?
IFフィールドのある位置ではなく、別の段落へとその結果を表示したい
みたいですが、そのあたりの具体的な理由付けなどが分らないと、何を
したいのかで結果が違うと思います。

単純にIFフィールドを置いた範囲をブックマークとして登録して、その
範囲を相互参照するだけで、別段落へとIFフィールドの実行結果を表示
することは可能です。
この場合、IFフィールドのある段落と同じものを表示しているだけで、
IFフィールドを非表示にしていることではないですが。

> { IF { Test 1 }="11111" {???} {???} }
> 文字は正しいです
> 間違っています
この場合の{???}は何?
「文字は正しいです」「間違っています」はどこから持ってきたもの?
IFフィールド内のTrueまたはFalseの場合の文字列として提示したもの
を、意味不明な表記にされると解らなくなります。
Settingのボタンで切り替えられるようにマクロで登録した変数を利用
したいらしいですが、このことも触れていませんし。

とくに理解できない部分は、IFフィールドで書き込んでいる位置に何を
表示したいのかです。
> { IF { Test 1 }="11111" {???} {???} }
では{???}ではフィールドの実行結果は[ブックマーク]または[実行結果
が値になるフィールド]として{???}が同じで表示されます。
TrueまたはFalseの違いがわからないのです。

2.について
式1に入れることができるものが理解できないということなので、私が
わかる範囲で説明します。

基本的に式1に入るものは、フィールドコードとしての[ブックマーク]
または[実行結果が値になるフィールド]です。
参照するべきものとして、値が変化するものが式1に入ることになり、
差し込み印刷のフィールドコードやページ番号、プロパティにある値、
相互参照するようなブックマーク、数式による計算結果などが対象です。


1.にしても、2.にしても、マクロで登録した変数を利用したいため
に理解しようとしているようですが、マクロですべて切り替えたほうが
簡単なのではないかと思います。
私は簡単なマクロぐらいなら扱えますが、変数を使うようなものを利用
するようなものは、ほとんど利用したことがありません。
マクロで制御できれば、何もフィールドコードで切り替えることはない
と思いますが、なぜフィールドコードを利用するのかが理解できません。

今後は、補足されるときには回答者も同じことができるように具体的な
状況を書かれると、補足への具体的な回答を受けることができる可能性
があるかと思います。

長文の回答になりましたが、何をしたいのかがよくわからないために、
あいまいな表現が多くなっています。推測が多くなると質問者にも回答
があいまいになりますから、理解しにくい回答内容になりやすいです。
    • good
    • 0
この回答へのお礼

丁寧なご説明どうもありがとうございます。また、質問がわかり辛くてすみません。

1について。
=================================================================
> { IF { Test 1 }="11111" {???} {???} }
> 文字は正しいです
> 間違っています
この場合の{???}は何?
「文字は正しいです」「間違っています」はどこから持ってきたもの?
================================================================
*???は、質問したい内容です。どの様な表記をしたら、
  やりたい事が実現出来るのでしょうか?
*「文字は正しいです」は、Trueの際表示したい文字です。
 IFフィールドの外に記載したいです。
*「間違っています」は、Falseの際表示したい文字です。
 IFフィールドの外に記載したいです。

つまり、フィールドコード表示で、下記の様に書き、
{ IF { Test 1 }="11111" {???} {???} }
文字は正しいです
間違っています
Trueの時、下記の様に表示され、
文字は正しいです
Falseの時、下記の様に表示したいです。
間違っています

IFフィールド外部の文字を、フィールドコードで見えなくするのは、
無理なのかと思うのですが、可能かどうか知りたいです。

2について。
 了解致しました。どうもありがとうございます。
マクロを使った方が楽なのではとの事、勉強してみます。

初心者で用語もわからず、お手数をお掛けして申し訳ありません。

お礼日時:2009/11/16 07:19

お礼メールが今日届いたので、お礼が何日前にされたのか知りませんが


何かしらの進歩があったのかしら?
今回の質問やお礼などを読んでも、今ひとつ理解できないでいますが、
ExcelのIF関数などを使ったことはありますよね?
Wordでも差し込み印刷をしたことがありますよね?
そのときのIFの働きをみれば、別のところに表示することが無理がある
ことは理解できると思います。

今回実行したいことは、あるコマンドボタンを押すことで、特定の文章
を表示したいことが前提ですよね。その文章がIFのある場所と違う理由
などが説明されていないので、回答ができません。
私が示した例を用いて説明しようとしていますが、かえって解りにくく
していますので、具体例をわかりやすく整理して補足してはいかが。

IFフィールドの外へと文章を出したいことにこだわる理由がわからない
ので、この質問に回答をするのは難しいと思います。
ボタンで表示したい段落へと単純にIFフィールドを配置するだけで済む
はずなのに、IFフィールドをおいた段落とは別に表示したい文書の表示
非表示の切り替えをする意味が無意味だと思うので、補足された内容に
よっては今回の回答が最終の回答だと思ってください。

フィールドコードの使い方とかに、独自の考えを持ち込むよりは、質問
内容をフィールドコードにこだわらない内容でされたほうが、回答する
側にアイデアが多く出やすいと思いますよ。
    • good
    • 0
この回答へのお礼

enunokokoro様、

 丁寧なご回答どうもありがとうございます。やはり、IFの外の
文字列の表示・非表示切り替えは無理ですよね。
 今回初めてフィールドコードを勉強したのですが、フィールド
コードの知識のない人(お客様)が、フィールドコードによる
制御を出来る方法を考えて欲しいと言われて、調べていました。
つまり、フィールドコードを書くのは私で、文章を書くのは
お客様という形です。他の方法で対処したいと思います。
 本当にどうもありがとうございました。

お礼日時:2009/11/25 07:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!