• 締切済み

【Excel】表示形式の日付を任意の年にしたい

Excelの表示形式の「日付」についてです。 「*2001年3月14日」というアスタリスクがついている場合は、年がOSで設定した時計に合わせているそうですが、「2001年3月14日」という形でも、月と日を入れると年はその年になります。 アスタリスクがついているほうとついていないほうが同じ結果になるのに区別されているということはないと思いますが、それぞれ入力の規則があるのでしょうか? 目的は月日を入れると、設定した年になることです。これに対する方法はありますか? *2007利用です。

  • frau
  • お礼率54% (2370/4367)

みんなの回答

  • SI299792
  • ベストアンサー率48% (714/1475)
回答No.8

私なら、システム日付を変更します。終了後戻さないと大変ですが。 システム日付を変更できないなら、入力後2018を2001に置換します。余計なものを入力しないので、この方が早いと思います。

  • wek00
  • ベストアンサー率62% (90/145)
回答No.7

これ自分も欲しかったやつだ! 私はメモ帳などに入力した 2001/ をコピーしておいて、 セルをF2で編集モードにしCtrl-Vで貼り付けてから 残りを入力したりしてました。 エクセル 年 自動入力 エクセル 来年の日付 入力方法 エクセル 去年 の 日付 入力 といったキーワードでこのサイトやWebを検索してみましたが ここでまだ出ていない方法としては... ・入力が終わってから置換する  一つ一つ確認・スキップしながらも、まとめて一括でもできます。 ・ワークシート関数を使う  入力するセルと表示するセルが別でいい場合、  一旦別のシートにまとめて入力してから  それをコピー&貼り付けするのでもいい場合は  この方法もいいのではないでしょうか。 マクロ(VBA)でもできますので(表示形式についての質問でなく)改めて 質問してみると教えてくれる・探してくれる人もいるはずです。 じっくり探したわけではないのですが残念ながら私にはサンプルコードは見つけられませんでした。 なお、とりあえず動くっぽいねレベルであればWeb上のサンプルを切り貼りするだけで素人(私)でも作れます。自分で書いてこのサイトのような場所で添削をお願いするのも一つの手でしょう。 参考: エクセルExcel大事典 VBAマクロ イベントプロシージャ Open Target Cancel EnableEvents Volatile http://home.att.ne.jp/zeta/gen/excel/c04p59.htm セルにブック・シートを指定する(Workbooks,Worksheets,With,Set)|VBA再入門 https://excel-ubara.com/excelvba1r/EXCELVBA517.html Excel VBA Tips https://www.tipsfound.com/vba/05dateserial https://www.tipsfound.com/vba/05isdate Office TANAKA - Excel VBA Tips[選択範囲の操作] http://officetanaka.net/excel/vba/tips/tips111b.htm サンプル セルが変更される度に実行されるプログラムに 日付データを書き換える処理を仕込んだもの。 仕様は添付画像のワークシート関数と概ね同様のはずです。 エラー処理を一切いれていません。ご注意ください。 変換後が閏年なら2/29は2月29日になるべきでは?とか 2/30は2月28日の次の次の日と解釈するほうが好みだけどな~とも思いますが そうはなっていません。既存の関数に突っ込んでいるだけです。 Private Sub Worksheet_Change(ByVal Target As Range)   '無保証です。どのような損害につながるか分かりません   Y = ActiveWorkbook.ActiveSheet.Range("C17").Value   If Y >= 1930 Then     'C17セルの値が1930以上のときに動作します。     '当該セルを空欄にするなどで止められます。     For i = 1 To Target.Count       v = Target(i).Value       If IsDate(v) Then         'セルのデータが日付に変換可能ならば以下の処理を         M = Month(Target(i).Value)         D = Day(Target(i).Value)         DT = DateSerial(Y, M, D)         If v <> DT Then           'セルの値と再生成した値を比較。           '一度書き換えたセルの再書き換えは行わない...はず           Target(i).Value = DT         End If       End If     Next i   End If End Sub ※こちらはVBAの文字列-日付変換仕様のテストです Sub test1()   s = "2/28"   Debug.Print s; " ";   Debug.Print IsDate(s); " ";   Debug.Print CDate(s);   Debug.Print Day(s)   s = "2/29"   Debug.Print s; " ";   Debug.Print IsDate(s); " ";   Debug.Print CDate(s);   Debug.Print Day(s)      s = "2/30"   Debug.Print s; " ";   Debug.Print IsDate(s); " ";   Debug.Print CDate(s);   Debug.Print Day(s)      s = "1/0"   Debug.Print s; " ";   Debug.Print IsDate(s); " ";   Debug.Print CDate(s);   Debug.Print Day(s)    End Sub test1の実行結果 2/28 True 2018/02/28 28 2/29 True 2029/02/01 1 2/30 True 1930/02/01 1 1/0 True 2000/01/01 1

noname#231016
noname#231016
回答No.6

>>「”2001年"m"月"d"日"」と言う定義は可能ですが >エラーになるのになぜ定義は可なのでしょうか? 「”2001年"m"月"d"日"」はエラーになりません。 「2001"年"m"月"d"日"」がエラーになり設定できません。 前者は”2001年"が実際の年数に関係なく固定の文字列として先頭に付加される書式です。従って、実際には2018年3月10日でも表示が2001年3月10日になります。 後者は2001の所をyyyyに指定しないと表示形式の指定の約束事に反しているのでExcelのプログラムで受付を拒否されるためと思います。

frau
質問者

お礼

見落としてました。「” "」があるかないかの違いですね。

noname#231016
noname#231016
回答No.5

回答No.4の追加です。 「ユーザー定義」で「2001"年"m"月"d"日"」ではエラーになりますが「”2001年"m"月"d"日"」と言う定義は可能ですが「3/9」と入力したとき「2001年3月9日」と表示されます。しかし、値は「2018/3/9」になります。(表示と値の実体が異なる結果になります)

frau
質問者

補足

ユーザー定義で設定されている「yyyy"年"m"月"」の「yyyy」の部分を2001年に差し替えたら「入力した形式は正しくない」というエラーがでましたので >「”2001年"m"月"d"日"」と言う定義は可能ですが エラーになるのになぜ定義は可なのでしょうか?

noname#231016
noname#231016
回答No.4

>目的は月日を入れると、設定した年になることです。これに対する方法はありますか? 表示形式は入力値を規定するものではありませんので希望に沿える方法がありません。 尚、日付を想定できる入力があると自動的に規定の表示形式に変更されます。 入力前に表示形式を日付の仲間から「*2001年3月14日」を選んでも「2001年3月14日」を選んでも月日のみ「3/9」のように入力すると「2018/3/9」と判断されます。(年を省略すると入力した年が付加される) 表示形式を「ユーザー定義」から「2001"年"m"月"d"日"」と入力するとエラーになりますので「設定した年」と言う定義ができません。

frau
質問者

お礼

ご回答ありがとうございます。 確かに最後の方法してのユーザー定義も不可でした。回答者2の方の言う「オートコレクトを使用する」という方法しかありませんね…

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.3

セルの書式の「*2001年3月14日」は、コントロールパネルの「地域と言語」の「日付(長い形式)」と同じ物です。 添付画像の「日付(長い形式)」を変更すると、Excelの表示も「自動的に変更」されます(表示の変更は、シートを開き直した時に行なわれます) コントロールパネルの「地域と言語」の「日付(長い形式)」が「yyyy年M月d日」になっている場合、月と日は「1桁の場合は1桁、2桁になる場合だけ2桁」になります。 コントロールパネルの「地域と言語」の「日付(長い形式)」が「yyyy年MM月dd日」になっている場合、月と日は「必ず2桁」になります。 一方、セルの書式設定の、アスタリスクの無い「2001年3月14日」は、「地域と言語」の設定とは無関係に、月と日は「1桁の場合は1桁、2桁になる場合だけ2桁」になります。 例えば、「地域と言語」の「日付(長い形式)」が「yyyy年MM月dd日」になっている場合、以下のようになります。 セルの書式「*2001年03月14」⇒表示結果「2014年03月09日」 セルの書式「2001年3月14」⇒表示結果「2014年3月9日」 このように、セルの書式「*2001年03月14」と「2001年3月14」は、異なる結果になります。 例えば、「地域と言語」の「日付(長い形式)」が「yyyy年M月d日」になっている場合、以下のようになります。 セルの書式「*2001年3月14」⇒表示結果「2014年3月9日」 セルの書式「2001年3月14」⇒表示結果「2014年3月9日」 このように、セルの書式「*2001年3月14」と「2001年3月14」は、同じ結果になります。 >目的は月日を入れると、設定した年になることです。これに対する方法はありますか? 「年を省略して、月と日だけを入力した場合」には、Excelは「システム時計の年月日の年を使う」ようになっています。 なので、システム時計が2018年3月9日になっている時に「3/14」と入力すると「2018年3月14日」が入力されます。 Excelでは「現在のシステム時計を変更する事はできない」ので「年省略時に、今年以外の年を自動入力する事は不可能」です。

frau
質問者

補足

ご回答ありがとうございます。 なるほど。そのような裏事情(!)がありましたか。ほんとうにオフィスは質問しないとわからないことだらけです。 結局任意の年の自動設定はできずにシステム時計に従うこととなるわけですよね。 アスタリスクがあるのは 『外国でファイルを使うときにその国の書式設定に自動的に変更させるときに「アスタリスク付き」の書式設定をする』 ということで非常に稀なことです。なのでアスタリスク付きと付いてあるのが同列に設定されてますので混乱します。 ところで >「yyyy年M月d日」になっている場合、月と日は「1桁の場合は1桁、2桁になる場合だけ2桁」になります。 についてですが、2桁というのは「01月01日」というように入力したときの表示のことですよね?「yyyy年M月d日」の1桁、「yyyy年M月d日」の2桁についてはご回答どおりになりましたが、「yyyy年M月d日」の2桁については「yyyy年M月d日」の1桁と同じ結果となってしまいます。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

アスタリスク付の書式はOSの設定によって「表示形式」を変えるだけで、データ自体に変更を加えるわけではありません。 月日だけを入力すると、Excelは今年の日付と判断します。 これは変更できません。 代替案ですが、オートコレクトを使用すると多少入力が楽になります。 例えば、修正文字列に ]] 、修正後の文字列に 2015/ と設定しておくと、セルに ]]3/9 と入力すると自動で2015/3/9と変換してくれます。

frau
質問者

お礼

ご回答ありがとうございます。 他の方の回答も鑑みたところ、結局今のExcelでは任意の年の自動入力は不可ということがわかりました。 特定の年をたくさん入力したい場合の新たな機能が待たれますが、それまではこのオートコレクトを利用したいと思います。

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.1

私もちょっとは気になってたんですが、調べてみました  例えばセルA1に「*2001/3/14」の書式設定を、A2に「2001/3/14」の書式設定  をし、「11111」と入力するとA1、A2両方とも「1930/6/2」と表示されまし  た。  そこでコントロールパネルの「地域と言語のオプション」を日本語から「英語  (米国)」に変更し、OKボタンを押します。  エクセルを確認してみると日付表示はどうなりましたか?  つまり、外国でファイルを使うときにその国の書式設定に自動的に変更させた  いのなら「アスタリスク付き」の書式設定をする必要がありますね。 というのにhitしました 『外国でファイルを使うときにその国の書式設定に自動的に変更させたいのなら 「アスタリスク付き」の書式設定をする』 という事らしいです

frau
質問者

補足

ご回答ありがとうございます。 >エクセルを確認してみると日付表示はどうなりましたか? 変わりません。また「2001/3/14」という形ではなく「2001年3月14日」となります。

関連するQ&A

  • 【Excel】日付・時刻のアスタリスク形式について

    Excel2007利用です。 「セルの書式設定」の「表示形式」についてです。 (1)まず時刻についての表示がうまくいきません。 [日付]では「*2001/3/14」で設定すると例えば「2016-1-1」と入力すれば「2016/1/1」と表記されます。 しかし[時刻]についてはできず、例えば「13:30」で設定し、「13-30」と入力しても「13-30」と表記されるだけです。 次にアスタリスクの形式によって変わることについてです。 ------------------------------------------------------------------------------------------------------------------------- [時刻]は、日付/時刻のシリアル値を時刻形式で表示します。 アスタリスク(*)で始まる時刻形式は、オペレーティングシステムで指定する地域の日付/時刻の設定に応じて変わります。 アスタリスクのない形式は、オペレーティングシステムの設定が変わってもそのままです。 ------------------------------------------------------------------------------------------------------------------------- [日付]に[時刻]を入れ替えるだけで同じ説明文ですが、双方ともアスタリスクのことについて書かれています。 (2)シリアル値で日付を入れる場合、たとえば「1900年4月9日」を表記させる場合「100」と入力するようですが、http://www3.tokai.or.jp/excel/kansu/hiduke.htm 「シリアル値とは1900年1月1日を1とし、その日からの通算日数と時刻を表す値」ということであり、任意の日数を入れたい場合には、いちいち起算日から数えて入力しなければならないのでしょうか。 シリアル値を使うことはありませんが、どのような目的のためにあるのでしょうか?具体例を教えてください。 (3)アスタリスクの有無は、オペレーティングシステムでの設定によって変化に違いがあるいうことだと思いますが、 *あり➡「オペレーティングシステムで指定する地域の日付/時刻の設定に応じて変わる」 *なし➡「オペレーティングシステムの設定が変わってもそのまま」 それぞれの「種類」で設定しても何も変わりませんでしたが、これらの違いについて教えてください。

  • 【Excel】書式設定で日付を27-1-1にする

    書式設定の表示形式にない場合、 たとえば平成27年1月1日を書式設定で 27-1-1 という形にするにはどうしたらよいのでしょうか? またこれには条件があり、リアルの日付に自動変換されないことです。 アスタリスクのある形式(*)2015/1/1 などは、「2015-1-1」と入力しても自動的に今日の日付「2015-4-10」になってしまいますが、「27-1-1」の任意の設定も同様に任意の入力のとおりに表示させるという条件です。

  • エクセル2002 日付表示形式について

    エクセル2002の「セルの書式設定」-「表示形式」についての質問です。 「分類」日付を指定し、種類をみると*2001年3月14日と表示されているものと、2001年3月14日とがあります。アスタリスク*が入っているものと無いものとの違いがわかりません。画面の下に説明が書いてはあるのですが、いまひとつ意味が・・・ どなたか、この意味を分かりやすく教えていただけないでしょうか。 よろしくお願いします。

  • EXCELの日付の表示形式に関して

    EXCELの日付の表示形式の種類の中で、アスタリスクがついているものとついていないものがありますが、何が違うのでしょうか? ダイアログボックスに説明は書いてあるのですが、意味がよく分かりません。宜しくお願いいたします。

  • エクセル:書式-表示形式-日付のアステリスクの意味?

    お世話になります。 書式の表示形式について教えてください。 書式-表示形式-日付-種類で、 「*2001/3/14」と「2001/3/14」の違い(頭にアステリスク=* の付くのと付かないもの)は何でしょうか? いつも選択するときにどっちを選べばよいのか迷ってしまいます。同様に「時間」にもあります。 この 【アステリスクの付く付かないの違いの意味と、こういうときにはアステリスク付きを選択したほうがよいというような規則やメリット】 について教えてください。お願いします。

  • エクセル2003 セルの書式設定-表示形式-日付について

    エクセル2003 セルの書式設定-表示形式-日付について アスタリスクがついた日付について『書式を適用してもオペレーティングシステムの 日付の並びは切り替わりません』と明記されていますが、意味が分かりません。。。 分かりやすくおしえていただけませんでしょうか。 宜しくお願いします。

  • 日付の表示形式【Excel】

    日付の表示形式について質問です。 『平成18年07月28日』のように月や日が1桁のときも前にゼロを付けて2桁表示にしたいのですが、そのような設定はできるのでしょうか?

  • エクセルの日付の表示形式設定でアスタリスク(*)があるものと無いものとの違いがわかりません!!

    エクセルの「セルの書式設定」で、「表示形式」タブの分類が「日付」の画面で質問があります。 右側の「種類」の中で、アスタリスク(*)がある日付と無いものとの違いは何ですか?画面下の説明文を読んでも理解できません。知っている方、どうか教えてください!

  • 【Excel】入力した数値に対する表示形式について

    仮名や漢字、アルファベットなどの「文字」。また「数字」や「記号」と表示形式との関係を教えてください。 以下、具体的な数値を入力する必要がある日付、時刻を除いた表示形式すべてを対象とした結果を述べる。指数についてはよくわからないため除外。 (1)入力した数値は入力どおり、設定した表示形式も設定どおりの場合 例)冒頭に0のない数字「123」を入力(表示形式「標準」の場合) ➡「123」と表示された (2)入力した数値も設定した表示形式も入力、設定どおりではない場合 例)冒頭に0のある数字「0123」を入力(表示形式「分数」の場合) ➡「123」と表示された (3)入力した数値が入力どおりだが、表示形式が設定どおりではない場合 例)冒頭に0のない数字「123」を入力(表示形式「分数」の場合) ➡「123」と表示された (4)入力した数値が入力どおりではないが、表示形式は設定どおりの場合 例)冒頭に0のない数字「123」を入力(表示形式「数値」の場合) ➡「123」と表示された 他の組み合わせ結果も、入力数値と表示形式が不規則にでます。 たとえば分数を文字列で設定して「1/2」と入力すると分数になるのに、「標準」だと「1月2日」とでます。 同様、「標準」に対し「1/2」や「1-2」と入力すると双方とも「1月2日」となりますがこれはなぜでしょうか? この場合「標準」「通貨」「会計」「パーセンテージ」で日付表示となります(「標準」は分かる気がしますが「通貨」「会計」「パーセンテージ」までもが日付扱いになります)。 特に(入力した数値が違う結果になるのは)冒頭に0がつく数字の場合は、他のすべての表示形式に対しても同様の結果となり違いが顕著です。 冒頭に0を置いた数字を示す場合を例外的に、原則は標準にしたほうがよいそうですが、上で述べたように「標準」でも「1/2」と分数を入力したいのに「1月2日」というように日付がでてしまいます。 (1)なぜこのようになるのでしょうか? (2)添付した画像は表示形式と入力した文字種との対応結果を示した表ですがこのように規則性がないためそれぞれの文字種に対しどの形式が適しているのかわかりません。 文字と形式を使い分ける考え方や法則性などがあれば教えてください。 (3)「指数」「その他」はどのような文字種や目的に使えばよいのでしょうか?

  • エクセルでの日付表示について

    エクセルで日付入力をしたさいの表示形式について教えて下さい 日付を入力した際に10/10→10月10日は出来ますが 10/5→10月05日と表示させたいです 書式で設定できるのでしょうか?教えて下さい

専門家に質問してみよう