• ベストアンサー

フィールドコード IF文 どこが間違っていますか?

Word2002を使用しています。差し込み印刷の疑問です。 もし「検査年月日」というフィールドが空欄なら何も入力せず、「検査年月日」というフィールドに日付が入力されていれば、「平成○○年○月○日」と表示するという条件式を作りたいのですが、うまくいきません。以下の式のどこが間違っているのか、教えてください。よろしくお願いします。 { IF "検査年月日"<>"" "ggge年M月d日" ""}

質問者が選んだベストアンサー

  • ベストアンサー
  • tokpy
  • ベストアンサー率47% (1313/2783)
回答No.1

話がわかりやすいようにフィールドコードが表示されている状態で説明します。 (もしフィールドコードが見えない場合は,[Alt]+[F9]でフィールドコードを表示します。) > もし「検査年月日」というフィールドが空欄なら何も入力せず、「検査年月日」というフィールドに日付が入力されていれば、「平成○○年○月○日」と表示する たぶん,これでいいと思います。  {IF {MERGEFIELD 検査年月日}<>"" "{MERGRFIELD 検査年月日 \@ ggge年M月d日}" ""} または  {IF {MERGEFIELD 検査年月日}="" "" "{MERGRFIELD 検査年月日 \@ ggge年M月d日}"} フィールドコードを表わす { } は,[Ctrl]+[F9]で入力して直接半角文字で記述するか,Wordのボタンを使います。フィールドコードの中にフィールドコードが2個入っています。内側のフィールドコードの入力に注意してください。

sat_kaz
質問者

お礼

回答ありがとうございます!とてもわかりやすくて参考になりました。職場のパソコンでやっているので、週明け早速試してみます!

sat_kaz
質問者

補足

教えていただいた2つの方法をやってみたのですが、どちらもうまくいきません。特にエラーは出ないのですが、やはり空欄のところが今日の日付になってしまいます…

その他の回答 (1)

  • tokpy
  • ベストアンサー率47% (1313/2783)
回答No.2

#1です。 #1の回答にスペルミスがありましたので,まず訂正します。 誤:{IF {MERGEFIELD 検査年月日}<>"" "{MERGRFIELD 検査年月日 \@ ggge年M月d日}" ""}  ↓ 正:{IF {MERGEFIELD 検査年月日}<>"" "{MERGEFIELD 検査年月日 \@ ggge年M月d日}" ""} > 特にエラーは出ないのですが、やはり空欄のところが今日の日付になってしまいます… {IF {MERGEFIELD 検査年月日}<>"" "{MERGEFIELD 検査年月日 \@ ggge年M月d日}" ""} この式そのものは,<<検査年月日>>フィールドが空欄かどうかを判断し,空欄の場合は,ヌル(未入力)を返していますので,本当にExcelのセルが空欄であるなら,今日の日付が入るはずがありません。 今日の日付が入ってしまうということは,Word側でツールバーのDateフィールドボタンを押してしまってDateフィールドのフィールドコードが入ってしまっているのかもしれません。 または,Excelのセルの設定をもう一度見直す必要だあると思われます。 例えば,見た目は空欄でも,スペースが入力されていたり,条件書式が設定されていて白い文字で何か入っていたり,today()関数やNow()関数を使っているので日付がExcelファイルを変更するたびに変わっているとか,あるいは別の理由があるのかもしれません。 Excel側のデータの作り方ですが,フィールド(列)を空けないようにしないと,うまく動作しない場合があるようです。例えば,A列,B列,D列を使っている場合(C列が未使用の場合),C列を消しておいた方が良いと思われます。また,データも,全部未入力のレコードがあるとうまく動作しないかもしれません。(未確認ですが,個人的には空欄が原因で過去にうまくいかなかった事があったような気がします。) それから,私はWord2000ユーザーなのですが,Word2002(Word XP)で仕様が変更されている場合はわかりません。Word 2000で作った差込印刷のファイルが2002ではうまく動作しなかった事がありました。

sat_kaz
質問者

お礼

御礼が大変遅れまてしまいました。申し訳ありません。詳しい回答、本当にありがとうございます。感謝しています。 実は未だこの問題解決できていないのですが、とりあえず、締め切らせていただきたいと思います。