• ベストアンサー

【Word】 今日の「年」「月」「日」を個別に挿入したい

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

enunokokoro様へ+質問者さんへ >Wendy02さんが書かれたフィールドコードのIF文は、質問の >意味と少し違うのではないでしょうか? それは承知で書いております。その後に、 #質問者様は、こういうことではないような気がします。もう少し複雑の計算ではないでしょうか? と、私が書いてありますね。例を出して、こんな風かと、質問者さんに、打診するつもりでったのですが、私が、きちんとした回答を書かない限りは、そのような、ご批判は免れ得ないですね。単なるフィールドの数式への興味で書いてしまったので、思わぬ誤解されてしまったようです。 私は、あくまでも、フィールドだけの解決には、限界があるのではないかと考えています。質問者不在で回答者が続けることは、マナー違反ですが、以下の方法は、おそらくは、さまざまな要求に耐えられるはずだと思っています。いくつかの海外のWordの有名なサイトをみてきて、満足できなかったので、私は独自に考え出しました。 ただ、 >QUOTE { =ある計算式で8桁表示にしたもの \#"####/##/##" } \@ d \* DBCHAR } >3日後でも10日前でも好きな日付で表示できるようになります。 どのような方法なのか、よく分かりません。8桁というのは、20070411 という数値ではありませんか?シリアル値<->日付値が可能なら、それもできるかと思いますが、何か複雑そうな気がします。日付は、変則的な繰り上がりで、10進の世界ではありませんから、見かけ上の文字列を10進にして計算すると、存在しない日付などが出てきてしまいます。シリアル値 <-> 日付値ということが約束されないとできないように思います。 以下の方法なら、どのような設定でも、プログラム上のVBAやVBさえ分かれば、複雑な計算でも、フィールドで出すことができるはずです。しかし、残念ながら、マクロを載せたままになってしまいます。別にアドイン型でも可能のはずです。 ThisDocument モジュールに以下を貼り付けます。現在は、単純に3日加えるというような仕様になっていますが、土日などを避けることも可能です。一旦、貼り付けて、保存し、再び、Wordを立ち上げます。そうしたら、フィールドを挿入する場所で、InsertCustomField というマクロを実行しますと、フィールドが挿入されます。 なお、ご質問者さんは、マスと書いていますから、それは、コントロールツールやフォームツールのテキストボックスを指すのでしたら、これよりも遥かに簡単にできます。ただ、どちらかというと、コントロールツールのほうが、ロックで拘束されない分だけ使いやすいです。(最後のTextBox3_KeyDown型マクロを参照) ------------------------------------------------------------ Private Sub Document_Open() '日付自動設定用イベント型マクロ Dim myDate As Date Const ADDDATE As Integer = 3 '三日加える    On Error GoTo ErrHandler  ThisDocument.CustomDocumentProperties("MyDate").Value = _    Format(Date + ADDDATE, "yyyy/MM/dd")  ActiveDocument.Fields.Update  Exit Sub ErrHandler:    myDate = Format(Date + ADDDATE, "yyyy/MM/dd")  With ThisDocument.CustomDocumentProperties     .Add Name:="MyDate", _     LinkToContent:=False, _     Type:=msoPropertyTypeDate, _     Value:=myDate  End With  Resume Next End Sub Sub InsertCustomField() 'フィールド挿入マクロ  Dim oField As Field, MyRange As Range  Set MyRange = Selection.Range  Set oField = ActiveDocument.Fields.Add(Range:=MyRange, _     Type:=wdFieldDocProperty)    oField.Code.Text = " DOCPROPERTY myDate \* MERGEFORMAT"    oField.Update End Sub ====================================== これは別の方法です。テキストボックスは、もう少しイベント型マクロで手を加えないと、使い勝手がよくありません。 テキストボックスが、6つがあり 入力側 :年, 月, 日 ここの3つ目のTextBox3 に設定する場合 表示側 :年, 月, 日 Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim y As String, m As String, d As String Dim myDate As Date Const ADDDATE As Integer = 3 '加える日  If KeyCode = 13 And TextBox3.Text <> "" Then   If IsNumeric(TextBox1.Text) Then y = TextBox1.Text   If IsNumeric(TextBox2.Text) Then m = TextBox2.Text   If IsNumeric(TextBox3.Text) Then d = TextBox3.Text   If IsDate(y & "/" & m & "/" & d) Then    myDate = CDate(y & "/" & m & "/" & d)    Else    Exit Sub   End If   TextBox4.Text = Format$(Year(myDate + ADDDATE), "00")   TextBox5.Text = Format$(Month(myDate + ADDDATE), "0")   TextBox6.Text = Format$(Day(myDate + ADDDATE), "0")    End If End Sub

saitama090
質問者

お礼

ありがとうございます。 ワードのマクロはまったくわからないので、勉強して使います。 本当に細かくありがとうございました。

関連するQ&A

  • Wordで日付、時刻挿入について。年のみ、月のみを挿入したい

    Word2007を使っています。日付、時刻挿入についてなのですが特定の月、特定の年のみを挿入したいと思っています。例えば、2008年と挿入しているとします。これを2009年になった時に2009と自動でアップデートしてもらいたいのです。同じように11月と挿入されていたのが、12月になったら12月と自動でファイルを開いたときに更新してもらいたいのです。 しかしながら、挿入形式では年のみ、月のみの挿入ができないようになっています。何か良い方法で挿入できないでしょうか?

  • Word2010 日付選択コンテンツ コントロール

    Word2010 で日付選択コンテンツ コントロールを表示し、プロパティから和暦を選択して平成25年10月20日と表示しました。ここで質問ですが、数字を全角で表示させるにはどうしたらよいのでしょうか。平成25年10月20日を選択して半角を全角にすることはできますが、プロパティの内容を変えて全角にする方法がありますか。

  • Access 今日の日付を和暦数字を全角で表示

    Access2013 レポートに今日の日付を、和暦(平成27年4月27日)で、そして、数字を全角で表示させる設定方法を教えてください。 テキストボックスのコントロールソースに記入する数式を教えてください。 よろしくお願いします。

  • ワード2002での日付挿入について

    ワードに日付を挿入するため、「挿入」→「日付と時刻」→「カレンダーの種類」→「西暦」→表示形式選択後、[自動的に更新する]をチェックし[OK]をクリックしたら、 {TIME\@"yyy'年'M'月'd'日'"} と表示されます。コピー&ペイストで他に貼り付けたり、印刷プレビューを見る限りはちゃんと数字で表わされるのですが・・・。 こういうものなんでしょうか?ワードに日付を入れた時点でちゃんと数字が入るようにするにはどうしたら良いのでしょうか。 アドバイス宜しくお願いします。

  • Excel2010 差し込み印刷について

    エクセルに氏名と生年月日(西暦)のリストを作成し、 Wordに差し込み印刷いたしのですが、生年月日を和暦、且つ、全角で表示ができません。 過去の皆様の回答を参考に何度か試し、和暦・全角の表示はそれぞれできますが、 両方を表示させることができません。 方法がありましたら教えて頂きたいと思います。 また、和暦 (スペース) 月 (スペース) 日生 (例:平成26年 1月 1日生)  と表示させる場合に、 年・月・日ごとにセルを分けてリストを作り、 年・月・日それぞれに差し込みフィールドを挿入しました。 この場合、月・日は全角表示ができましたが、 年のみ和暦、且つ、全角表示ができません。 この方法は可能でしょうか。 宜しくお願い致します。

  • エクセル2000:「半角数字で年/月/日と入力する」と表示され、入力できない

    会社で使用しているエクセルの書式があるのですが、日付が入っているセルに「=TODAY()」が入っていました。 自動的に今日の日付が入るわけですが、日付を入れたくなかったので、「=TODAY()」を消し、「平成  年  月  日」と入力すると、ダイアログが表示され、「半角数字で年/月/日と入力する。」と表示されます。 ここから困っているのですが、表示形式を日付から標準や文字列等に変えても、同じダイアログが出ます。入力する文字は、数字・アルファベット・ひらがな・漢字のどれを入力しても、全角・半角のどちらを入力してもダメでした。 半角で「2007/1/1」と入力してもダメです(泣) IFやSUM関数を入れても表示されないのですが、TODAYだけ、入力が出来ました。 私が作った書式ではないため、何が問題なのかさっぱり分かりません。 ちなみに、その書式にはマクロが入っています。(印刷の設定をマクロでしているようなのですが、書いてあることはよく分かりません。)これを無効にしても、ダメでした。 長くなり申し訳ありません。 「=TODAY()」しか入力を受け付けないのはどうしてなのでしょうか? どうすれば、通常の入力ができるのでしょうか? ご存知の方、よろしくお願いします。

  • Accessレポートに今日の日付を和暦での表示方法

    Access2013 レポートに今日の日付を挿入した際、和暦(平成27年2月9日)で表示させる設定方法を教えてください。よろしくお願いします

  • WORDで日付を挿入したら・・・

    こんにちは。WORDで挿入メニューから日付と時刻を使って日付を挿入したら{TIME\@"ggge年M月d日"}と表示されてしまいました。でも、印刷プレビューで確認してみると平成15年3月1日になっています。何が原因なんでしょうか?また、解決策などはないのでしょうか?なにかありました教えてください。おねがします。

  • A1に今日の日付 A2に「=jis(a1)」と入力 → 「39414」 の解消方法を

    【エクセル2003の質問】 いつもお世話になってます。 A1に今日の日付が入力されています。 「平成19年11月28日」と表示されています。 ※実際は数字は半角で表示されている。 全角で日付を表示させたいので、 A2に「=jis(a1)」と入力してA1の日付を全角で表示するよう企んだところ、「39414」と表示されてしまいました。 全角で日付を表示させたいのですが、どうすればよいのでしょうか? ご教示のほどよろしくお願いします。

  • access2007 日付 全角

    レポートにテーブルの値を表示する際に 日付を和暦で数字部分も全角で表示する方法がわかりません。 今の現状はプロパティの書式に gggee\年m\月d\日 といれているだけです