• ベストアンサー

エクセルの日付自動表示

月が入ったタイトルをワードアートで表示した場合・・・ 月の入力を変えただけで自動でその月の日付を変える方法はありますか? 1~4行までタイトルが入っています。 できない場合、ワードアートはそのままに、自動で日付を変える方法はありますか? 例えば、 「8月予定表」というタイトルをワードアートでつくっているとします。 一ヶ月分の日にちが入った表があり、タイトルの8月の部分を9月にしたとき、 自動で表の日にちがかわるやり方です。 表に余計な文字は表示したくありません。 できるでしょうか?

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

一例です。 予定表のレイアウトは考慮していませんので適宜調整して下さい。 (1)A1に日付入力(仮に2009/8と入力)し、セルの書式設定をユーザ定義でm"月予定表"として、フォント色を白を設定 (2)ワードアート→表示を選択→数式バーに=A1を入力 (3)A2に=IF(DATE(YEAR($A$1),MONTH($A$1)+1,0)>=DATE(YEAR($A$1),MONTH($A$1),ROW(A1)),DATE(YEAR($A$1),MONTH($A$1),ROW(A1)),"")を設定し、下方向に31行分コピー    因みにA2はセルの書式設定のユーザ定義でdを設定しておいて下さい。

その他の回答 (9)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.10

ワードアートの文字に見えるものも、出来上がったものは実態は画像である ワードアートなどで、文字(=実態は文字コード)で入力しーー>変形して画像、にすることは出来ても 画像を文字コード化するのは普通出来ない(OCRソフトの機能分野) ーー まして文字に見えていても、画像の一部をとりだす(あるとすればエクセル関数だろうが)そんなものは無い。エクセルの関数はセルの価しか参照できない原則を知ってますか。 >表に余計な文字は表示したくありません。 勝手なことを言っているが、ソフトは用意された機能以外はほとんど思ったとおりに、なるものではない。 全般に、原理とかそういうものが判ってくれば、こんな質問は出さないはず。 ーー ワードアートでセルの値と連動 例えば、H1セルに「9月の予定表」と入れておく。 ワードアートで画像を作成する。その際文字はとりあえず何でもよい。OKでシートに画像が出来る。画像を編集モードにして、数式バー部に=H1と入れる。 H1の文字列を「10月の予定表」と変えると即座に換わる。 http://questionbox.jp.msn.com/qa2200737.html ーー 質問者はVBAを勉強して無いだろうが http://www.geocities.jp/ttak_ask/office_docu/eo3.html のように Sheet1のChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) n = ActiveSheet.DrawingObjects(1).Name MsgBox n '参考表示 If Target.Address = "$A$2" Then ActiveSheet.Shapes(n).TextEffect.Text = Month(Target.Value) & "月予定表" End If End Sub を入れておく。 A2セル(A列に)日付(シリアル値の日付、文字列や1日の意味で 数1の入力は不可)2009/9/1を入れる。必要あらば、A列は書式で1日や9月1日以下に見せること。 これでワードアートは「9月予定表」になる。 A2を2009/10/1に変えると「10月予定表」に変わる。 この方式だと月1回、絶対に日付を変えるときはA2を変えるからこの機能が発動する。 日付けを数を入れる場合も、2009/9/1などと入れる場合も、どちらもオートフィルで月中の日は簡単に入力・表示できる。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.9

>セルの中の文字を反映させるためには、どこかに同じ文字がないとできませんよね? 余計な文字とはそのことです。 余計な文字を非表示にするのではいけないですよね? ワードアートでタイトルを作るだけなら、セルの結果を反映させればいいと思いますが

  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.8

> 表に余計な文字は表示したくありません。 回答番号:No.3さんの画像、A1,B1,A2セルの文字が「余計な文字」だと言うのであれば、 その文字の文字色を白(もしくは背景色と同色)にすれば良いだけでは? それか、1行目、2行目の部分をを非表示にするとか、別のシートにするとか。 あとは、No.3さんのリンクを参考に。 正直、何が問題なのかさっぱりわかりません。 簡単にできるものを、何故難しくしようとしているのでしょうか? あと、マルチポストはイクナイです。

paparyumam
質問者

お礼

ありがとうございます。 エクセルは初心者です。 白文字で消せば問題ないですね。そこまで頭が働きませんでした。 マルチポスト・・・ 気を付けます。

  • tttry
  • ベストアンサー率38% (44/114)
回答No.7

訂正です。 =IF($A$1=2,"",IF($A$1=4,"",IF($A$1=6,"",IF($A$1=11,"",DATE($L$1,月,L38))))) =IF(月=2,"",IF(月=4,"",IF(月=6,"",IF(月=11,"",DATE($A$1,月,L38))))) A1には、西暦を入力してました。 考えたら、他の回答者さんのおっしゃるように、year関数を使えば良いみたいですね。

  • tttry
  • ベストアンサー率38% (44/114)
回答No.6

日付関数を使う必要があるので、月だけではなく、西暦である2009をどこかのセルに入力する必要がありますよ。 例えば、A列のA1に西暦の2009を前もって入れておきます。 そして、4行目までがタイトルが入っているので、5行目以降に1から31の数字を入れて置きます。 実際に日数を表示したいが、B列の4行目からとすると、B列4行目のセルには、=date(A1,月,A4)と関数で入力した上で、セルの書式設定から、分類をユーザー定義を選択し、種類を小文字でdとすれば、本来date関数だと2009/8/1と表示される所が、日付の1が表示されます。 ただ、それだと、2月4月6月11月の日付が間違った数字が表示されますので、29日以降は、=IF($A$1=2,"",IF($A$1=4,"",IF($A$1=6,"",IF($A$1=11,"",DATE($L$1,月,L38)))))と言う関数を入れて下さい。 その上で、A列を表示しないとして隠せば良いと思います。 但し、うるう年には気をつけてください。

回答No.4

>月の入力を変えただけで自動でその月の日付を変える方法はありますか? ワードアートの文字列を判断材料にするためには、人間の判断が必要になることから、マクロの使用になるでしょう。 >できない場合、ワードアートはそのままに、自動で日付を変える方法はありますか? A5セル =DATE(A2,A3,1) A6セル =A5+1 A22セルまでオートフィル A33セル =IF(A32="","",IF(DAY(A32)+1=DAY(A32+1),A32+1,"")) A35セルまでオートフィル (A6セルからこのような数式をコピーしても良いですが無駄なので) 添付図参照 直接的な回答ではないので参考まで

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

A1に 2009  B1に 9   A2に =B1&"月予定表" B1を変更すれば自動的に変更されます。 A4に =DATE($A$1,$B$1,1) A1、B1を変更すれば自動的に変更されます。 A5に =A4+1 下方にオートフィル 月末を過ぎると翌月になります。 ワードアートにセルの中の文字を反映させたい。 http://pc.nikkeibp.co.jp/article/knowhow/20090309/1012986/ A2をワードアートに反映すればタイトルとして使えます。

paparyumam
質問者

補足

ありがとうございます。 自動で表示する表はできるのですが、今回つくるものは、ワードアートの月と表の日付を連動させたいのです。 セルの中の文字を反映させるためには、どこかに同じ文字がないとできませんよね? 余計な文字とはそのことです。 わかりにくいですよね?

  • USKy
  • ベストアンサー率40% (149/366)
回答No.2

月の日付は31日・30日・28日(29日)と月ごとに変わりますから、これを一様にワークシート関数で片付けるのは不可能です。 またワードアートからデータを抜く(ワードアートを参照する)ワークシート関数も用意されていませんから、ワードアートの内容によって値を返すこともできません。 カレンダー様の表を作る場合ですが、例えばセルB5が1日になるように下方向に日付を入れるとするなら、セルB5にはマニュアルで日付を入力し、B6~B35の30行には「1つ上のセル+1」という数式(セルB6には「=B5+1」)を入れます。 そうしておけば、セルB5に月初日付を入力するだけで意向は自動表示されますね。 31行(31日分)の表ですから、セルB5に9/1と入れると最終行は10/1になってしまいますね。都合が悪ければその行を削除するしかないでしょう。むろん2月も同様です。 セルの書式設定を変えれば日付の表示形式も簡単に変えられますし、ワークシート関数を組み合わせて曜日を表示することもできます。 これを当面その表が必要な期間分だけ、例えば年内分などをまとめて作って1つのブックに保存しておくのがベターです。日報のように、多人数にファイルを配付するならなおさらですね。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

ワードアートとの連携ではありませんが 一ヶ月分の日にちが入った表を最初の日だけ日付を入れて たとえばA1が最初の日でA2以降に日付があるならA2を=A1+1とかにして 下にフィルしておけば A!を変更しただけでその後の日付は変わりますよ。