Excel2010で元号(西暦)月日を表示する方法

このQ&Aのポイント
  • Excel2010で古いバージョンのExcelファイル内のセルに書式設定された元号(西暦)月日が正しく表示されない問題についての質問です。
  • 過去の質問を検索したところ、Excel2010では特定の書式設定を行うことで元号(西暦)月日を表示することができます。
  • 具体的な書式設定方法については試行錯誤中ですが、他のユーザーに有効な方法があるのか教えていただけないでしょうか?
回答を見る
  • ベストアンサー

Excel2010において「元号(西暦)月日」

 昔、古いバージョンのExcelで作成したExcelファイルで、シリアル値を、    元号○○年(西暦4桁年)○月○日[曜日] という形式で表示する様に書式設定したセルがあり、そのセルに例えば    1997/8/1 と入力しますと、本来は    平成9年(1997年)8月1日[金] と表示される筈だったのですが、そのExcelファイルをExcel2010で開いた処、    1997年(1997年)8月1日[金] と表示されてしまいます。  過去の質問を検索しました処、類似した質問として、  QNo.1493844 エクセルで和暦と西暦の表示形式を併用できますか。   http://okwave.jp/qa/q1493844.html を見つけましたが、Excel2010の場合、その質問に対して寄せられた回答の方法では、    1997年(1997年)8月1日 と表示されてしまいます。  私も何度か試行錯誤したのですが、どうにも上手く行きません。  どなたかExcel2010の場合でも有効な    平成9年(1997年)8月1日[金] という形式で表示させる書式設定を御教え頂けないでしょうか?  因みに、    1997年(平成9年)8月1日[金] という形式で表示させる事は[ユーザー定義]の yyyy([$-411]ggge")年"m"月"d"日["aaa"]" で出来たのですが、書類等では元号の方が重視されるため、元号を先に表示して、西暦の方を括弧内に入れたいのです。

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

  • ベストアンサー
回答No.2

手元にはExcel2007しかありませんが、2007では一応、次のとおり記入すれば、成功するようです。 "平成"[$-411]e"("yyyy")年"m"月"d"日" あるいは "平成"[$-411]e"年("yyyy"年)"m"月"d"日" [$-411]を付けておいたほうが不具合が起こりにくいかどうかは、何とも言えません。西暦の不具合を避けるためには、ないほうがかえっていい可能性もあるかもしれません。申し訳ありませんが、ご自分で判断ください。 なお「昭和」の日付であっても「平成」と表示してしまうので、ご注意ください。また、和歴と西暦を組み合わせるか否かとは関係なく、「元年」が「1年」と、おかしな表示になってしまうので、その点にもご注意ください。

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  成程! 元号を表示させるのではなく、"平成"という文字列を表示させるとは、コロンブスの卵的な発想に頭が下がる思いです。  それにしても、[$-411]ggge"年("yyyy"年)"m"月"d"日"が駄目で、"平成"[$-411]e"年("yyyy"年)"m"月"d"日"が意図した通りに表示されるのは何故なのか不思議に思います。 >また、和歴と西暦を組み合わせるか否かとは関係なく、「元年」が「1年」と、おかしな表示になってしまうので、その点にもご注意ください。  その点は、[$-411]ggge"年"m"月"d"日"であっても同様ですので、構わないのですが、 >なお「昭和」の日付であっても「平成」と表示してしまうので、ご注意ください。 の方は多少引っ掛かりを覚えます。  今回の作成する書類に関しては、幸いな事に平成に入ってからの日付しか入力しませんので、MarcoRossiItaly様の方法でも構わないのですが、その内、昭和の日付を入力しなければならない場面も出て来ると思われますので、何とかしたい処です。

kagakusuki
質問者

補足

 補足欄にて失礼致します。  御教え頂いた表示形式を基にさせて頂いて、「大正」、「昭和」、「平成」の3つの元号にのみ対応する表示形式を見つける事が出来ました。(明治の場合は大正と表示されてしまいますが) [<9856]"大正"[$-411]e"年("yyyy"年)"m"月"d"日["aaa"]";[<32516]"昭和"[$-411]e"年("yyyy"年)"m"月"d"日["aaa"]";"平成"[$-411]e"年("yyyy"年)"m"月"d"日["aaa"]"

その他の回答 (8)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.9

IsDateだけでは余計なものも変換してしまいますので、 以下に差し替えてください。 数字とスラッシュだけを対象に加えました。 今までの例、 1.2.3 → 明治32年(1899年)12月30日[土] 1-2-3 →平成13年(2001年)2月3日[土] 1-2 →平成24年(2012年)1月2日[月] Private Sub Worksheet_Change(ByVal Target As Range)   Application.EnableEvents = False      If IsDate(Target.Value) And Not Target.Value Like "*[!/-9]*" Then     Target.Value = Format(Target.Value, "ggge\年(yyyy\年)m\月d\日\[aaa\]")   End If      Application.EnableEvents = True End Sub

kagakusuki
質問者

お礼

 御礼が遅れてしまい、申し訳御座いません。  三度の御回答有難う御座います。  更に使い易くなるよう工夫して頂き感謝致します。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.8

別の列を用意できないというのであればマクロで対応することになるでしょう。 例えばA列に日付が入力されているとします。 セルには1997/8/1のように入力されているとします。仮に表示形式で平成9年のように表示されている場合には反応しませんので注意が必要です。 例えばシート見出しで該当のシート名を右クリックして「コードの表示」を選択します。 表示の画面には次のコードを入力します。 Sub 日付表示変更() i = 0 Do i = i + 1 If IsDate(Cells(i, 1).Value) Then myDate = Cells(i, 1) If Year(myDate) >= 1926 And Year(myDate) <= 1988 Then myYear = "昭和" & Year(myDate) - 1925 & "年" ElseIf Year(myDate) >= 1989 Then myYear = "平成" & Year(myDate) - 1988 & "年" End If myWeekday = Weekday(Date:=myDate) myWeek = WeekdayName(Weekday:=myWeekday, abbreviate:=True) Cells(i, 1).Value = myYear & " (" & Year(myDate) & "年) " & Month(myDate) & "月" & Day(myDate) & "日[" & myWeek & "]" End If Loop Until Cells(i, 1) = "" End Sub マクロを実行するためには「開発」タブの「マクロ」をクリックし、該当のマクロを選択して「実行」をクリックします。 A列に入力された日付のデータがお望みのような表示に変わります。

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  御教え頂いた方法を試してみましたが、「マクロ」ダイアログボックスの[実行]ボタンをクリックしましても、何故かA列に入力した日付データとその表示には変化が御座いませんでした。  尚、Visual Basicや、「マクロ」ダイアログボックスの[編集]で、マクロの内容を確認致しましたが、正常に記録されている様です。  マクロは御回答文をコピー&ペーストしたものですので、私の打ち間違いとも思えず、試しに、御回答文のマクロ部分と、記録されているマクロのそれぞれを、Excelの2つのセルにコピー&ペーストし、その2つのセルの値が等しいかどうかをExcelに判定させてみましたが、結果はTRUEでした。

回答No.7

色々経緯があって現状ではできないらしい?ので、 日付がA1セルにあるとして、無理やり合成する! =TEXT(A1,"ggge""年(""")&TEXT(A1,"yyyy""年)""m""月""d""日[""aaa""]""") ============================== 2007年08月16日(木) 16時29分 「元号の後に西暦を表示できない-ggge"年("[$-1033]yyyy"年)"」 http://www.relief.jp/itnote/archives/002748.php 「ggge"年("yyyy"年)"」と指定すれば「平成19年(2007年)」と表示されそうなものですが、Excel 2002・2003・2007では、「平成19年(19年)」と表示されてしまいます。 これはOffice XPから多言語対応したことによる仕様のようです。元号を表示するための書式記号「ggg」が指定されていることで、そのセル内では日本の日付表示を行うという認識が行われ、続く「yyyy」に和暦年が表示されてしまうのです。ちなみに、 Excel 97・2000では「ggge"年("yyyy"年)"」と指定すれば、「平成19年(2007年)」と表示されますが、 Excel 2002以降のバージョンでは書式設定に工夫が必要です。 [種類]欄に「ggge"年("[$-1033]yyyy"年)"」と入力 ポイントは「[$-1033]」です。 ロケールIDを指定することで正しく表示されるようになるのです。「1033」というのは、言語コード:en-us・ロケール名:英語(U.S.)を意味する10進表記のロケールIDです。「[$-1033]」が指定されることで、それに続く「yyyy」が、英語(U.S.)圏の年表示をするという認識が行われるわけです。 ※このネタを公開した2007年8月16日時点では、Excel 2007でも「ggge"年("[$-1033]yyyy"年)"」の設定で、和暦の後に西暦を表示できていたように記憶しているのですが、2007 Microsoft Office system Service Pack 1 (SP1)適用後は、「ggge"年("[$-1033]yyyy"年)"」を指定しても「2008年(2008年)」という表示になってしまうことがあるようです。(2008年6月26日追記)

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。 >色々経緯があって現状ではできないらしい?  そうだったのですか、残念です。  おそらく同じ表示形式を望んでいるユーザーも多いのではないかと思われますので、Microsoft社様には早目に対応策を見つけて貰い、対応するパッチを配布して頂きたい処です。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.6

自己解決されたようなのですが一応前回の説明を。 そこではなくて、VBEに記述します。 Alt+F11 キーか、リボンの開発タブのVisual Basicを押します。 画面がVBEに切り替わります。 プロジェクトウィンドウの Sheet1(Sheet1) をダブルクリックします。   プロジェクトウィンドウが出てなければ   Ctrl+R または表示→プロジェクトエクスプローラで。 コードウィンドウが現れます。 そこのGeneral▽ となっているプルダウンメニューからWorkSheetを選択。   Private Sub Worksheet_SelectionChange(ByVal Target As Range)   End Sub   がポコッと現れます。 この・・Worksheet_SelectionChange・・を・・Worksheet_Change・・に書き換えます。   またはSelectionChange▽になっているプルダウンメニューから   Changeを選択します。     Private Sub Worksheet_SelectionChange(ByVal Target As Range)     End Sub   は不要なので消します。   残っている     Private Sub Worksheet_Change(ByVal Target As Range)     End Sub の間に先ほどの回答の中身をコピペします 結果は Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If IsDate(Target.Value) Then Target.Value = Format(Target.Value, "ggge\年(yyyy\年)m\月d\日\[aaa\]") End If Application.EnableEvents = True End Sub になります。 メニューのデバッグ→VBAProjectのコンパイルをクリックしエラーが出ないのを確認。 Alt+F11でExcelの画面に戻ります。 このコードはSheet1に変更があった時に発生しますので Sheet1上で任意のセルで日付を入力します(8/19とか・・) 日付が、平成24年(2012年)8月19日[日] に替わります。 最後にファイルをxlsm形式で保存します。 ここまで読み進んでもらって今更言えない事なのですが データは日付型からテキスト型に変更されていますので計算には使えません。 また日付と判断される場合(IsDate)は全て変更されます。 月日だけを表示したいセルが他に有ったりする場合は、 If ~ End Ifの部分を修正する必要が有ります。 あとは書籍などで・・・。

kagakusuki
質問者

お礼

 丁寧に御説明頂き感謝致します。  御教え頂いた方法で、無事、変換する事が出来ました。  入力した値がシリアル値ではなく、文字列になってしまう事が難点ですが、今回の書類のみに関してはシリアル値ではなくとも、必ずしも問題にはならないと思います。  御教え頂き、有難う御座いました。

回答No.5

ggge"年("[$-1033]yyyy"年)"m"月"d"日"

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  折角御回答頂いた処、申し訳御座いませんが、御教え頂いた表示形式は、質問文中で上手く行かなかった事を述べております「QNo.1493844 エクセルで和暦と西暦の表示形式を併用できますか。」に対して寄せられた回答の方法と同じものです。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

なかなか言うことを聞いてくれませんね。 英語ロケールの[$-409]と組み合わせれば・・と考えましたが惨敗。 早々と妥協案です (^^ゞ ワークシートの Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If IsDate(Target.Value) Then Target.Value = Format(Target.Value, "ggge\年(yyyy\年)m\月d\日\[aaa\]") End If Application.EnableEvents = True End Sub ではダメですかね。

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  折角御回答頂いた処、申し訳御座いませんが、御教え頂いたマクロをコピーして、「マクロの記録」ダイアログボックスの「説明」欄に貼り付けてから、[OK}ボタンをクリックし、「コード」グループのマクロボタンをクリックすると現れる、「マクロの記録」ダイアログボックスの[実行]ボタンをクリックしてみましたが、何故か日付表示に変化が御座いませんでした。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

表示形式で対応することはできないでしょう。 A1セルに日付のデータが1997/8/1のように有るとしてらB1セルに次の式を入力してはどうでしょう。 =TEXT(A1,"ggge年")&TEXT(A1,"(yyyy年) m月d日")&SUBSTITUTE(SUBSTITUTE(TEXT(A1,"(aaa)"),"(","["),")","]") (金)のように表示することは容易なのですが[金]は工夫が必要ですね。

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  折角御回答頂いた処、申し訳御座いませんが、日付を入力する欄は、数行を挟んで飛び飛びの行に存在していて、間に挟まる行数は、入力する文章の量によって変わって来るというもので、行の挿入や行の削除が行われる場合の方が多いため、他のセルに元データを入力する方法では、入力するセルを間違える恐れが高くなるかと思われましたので、今回は関数による方法は避けたいと考えております。

  • since_1968
  • ベストアンサー率24% (254/1053)
回答No.1

ggge"年("yyyy"年)"m"月"d"日"で表示されるのでは

kagakusuki
質問者

お礼

 御回答頂き有難う御座います。  その設定は、質問投稿前に既に試みていたのですが、 平成9年(9年)8月1日[金] と表示されるだけでした。

関連するQ&A

  • エクセルで和暦と西暦を同時に表示したい

    現在、日付データが入っているセルを和暦と西暦を同時表示させたいのですが、どのようにしたらよいでしょうか? 2007/6/1 と入っているセルを 平成19年(2007年)6月1日 と表示させたいのです。 書式設定-表示形式-ユーザー定義で元からあるのを利用して [$-411]ggge"年("yyyy"年)"m"月"d"日";@ とすると 平成19(19年)6月1日 となってしまいます。 試しにyyyyggge とすると 2007平成19 と西暦+和暦となるのですが、 gggeyyyy とすると 平成1919 と和暦+和暦になってしまいます。 [$-411]が肝なのかな?と思いますが、そこから先がわかりません。 バージョンはExcel2003です。 どうかご教示下さい。

  • 西暦と元号の組合せ

    平成16年・・・西暦2004年 平成15年・・・西暦2003年 平成14年・・・西暦2002年 平成13年・・・西暦2001年 平成12年・・・西暦2000年 ・・・・・・・・・・・・ ・・・・・・・・・・・・ 平成元年・・・西暦1989年 昭和64年・・・西暦1989年 昭和63年・・・西暦1988年 ・・・・・・・・・・・・ ・・・・・・・・・・・・ 上記のように一覧になったサイトはネット上でいくつかありますが、元号が年の途中で変わった時に(○○月○○日までは昭和64年、○○月○○日以降は平成1年というふうに)元号が変わった日付も分かるサイトがなかなか見つかりません。 なるべく古い年まで分かるとありがたいのですが知ってる方教えていただけないでしょうか。

  • エクセルの和暦(複雑)を西暦表示に戻すには?

    50代の男性です。 エクセルの1,000個以上の日付データの整理に際しての悩みです。 「2008/11/3」を「セルの書式設定-表示形式-ユーザー定義」で「[$-411]" "yyyy(ggge)"年"m"月"d"日"(ddd)」として、「2008(平成20)年11月3日(月)」と表示させました。 これを、元の西暦(2008/11/3)に戻すには、どのようにしたらよいのでしょうか? どなたか、よろしくお願いします。

  • 元号? 西暦?

    今年は何年?と聞かれたら、 私の場合、たいてい2013年と西暦で答えます。 皆さんは元号派ですか? 西暦派ですか? また仕事とプライベートで使い分けてますか? 以前、年月日を記入する欄のアタマの部分に平成と書かれてたのに、 2012年と書いてしまい、平成2012年をネタに大爆笑されたことがあります^^

  • excel2013和暦と西暦同時表示にて・・・

    excel2013にて  平成27年(2015年)  という表示をさせたい。 以前excel2003では、セルの書式に  ggge"年 ("[$-1033]yyyy"年)" と設定すればよかったのだが、excel2013では、  2015年 (2015年) と表示されてしまう。 いろいろといじっていると偶然できる方法を見つけたのが  [$-411]ggge"年 ("bbbb"年)" という設定。 しかし、bbbbと記述するような解説を見たことが無く、保証された動作なのか 疑問である。 質問なのですが、 (1)平成27年(2015年) と表示できる正規の方法はありませんか (2)偶然見つけた方法ですが、解説頂けないでしょうか。 以上、よろしくお願いします。

  • excelで西暦を元号にする

    西暦の年月の一覧があります。A1 のセルは2007年7月となっていますがクリックすると数式バーは2007/7/1 となっています。B1のセルに元号と7月としたいのですがどうしたらできるでしょうか?A11セルまで同じようにしたいのです。教えてください。よろしくお願いします。

  • Excel西暦から和暦

    Excel2007を勉強中の者です。西暦から和暦になおす時に平成であればユーザー定義からggge"年"m"月"d"日"ですが、明治や昭和も変換できるのでしょうか?教えてください。

  • 元号について

    エクセルでデータベースを作っています 日付を入力する際、年を西暦にしていますが、元号がすぐにわかりずらいので、出来たら西暦年の隣りの列に元号も入力したいと思っています。 そこで、元号の列に何かの「関数」を入れるとか、西暦を入力したら自動的に隣りの列に「元号年数」が入るような方法があれば教えてください。 2010年 →平成22年、2009年→平成21年、2008年→平成20年といった感じです。 よろしくお願いします。

  • Excel2003で元号から西暦に変換

    E2に 平成21年4月分 というデータが入っています。 B11に日付を入力したとき、 C11に曜日を自動的に入れたいと思っていますが、 C11に私がいれた関数は、元号から西暦に変換する関数が分からず、 =IF(C11="","",TEXT(DATE(2009,MID($E$2,6,1),C11),"aaa")) と入れました。 本当はDATE関数の2009の所に、E2の平成21年を西暦に変換して入れたいのですが、関数が分かりません。 教えてください。

  • 元号と西暦、皆さんにとって便利なのはどっち?

    昭和61年とか平成17年は元号ですね。一方、1986年とか2015年は西暦です。 さて、この元号と西暦ですが、皆さんの生活の中で便利・使いやすいと感じているのはどっちですか?

専門家に質問してみよう