• ベストアンサー

エクセルで日付入力について

エクセル2002を使用しているのですが、4桁の数字を入力するだけで2006年11月23日(木)と表示する方法をどなたか教えてください。 例えば1231と入力してエンター押したら 2006年12月31日(日) みたいな感じです。 よろしくお願い致します。

noname#186192
noname#186192

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

方法その1 A1に1231と入力したらB1に2006年11月23日(木)と表示する(別セルでいい場合) B1の表示形式を yyyy"年"m"月"d"日"(aaa) としておき、B1に =VALUE(LEFT(A1,2)&"/"&RIGHT(A1,2)) という式を入れる。 方法その2 1と同じく、A1に1231と入力したらB1に2006年11月23日(木)と表示する(別セルでいい場合) B1に以下の式を入れる。 =YEAR(TODAY())&"年"&LEFT(A1,2)&"月"&RIGHT(A1,2)&"日" 方法その3 A1に1231と入力したらそのセルに2006年11月23日(木)と表示する。 Alft+F11でVBAの画面を立ち上げて、左の画面から日付を入力するシートをダブルクリックして、右の画面に以下のマクロを貼り付ける。 その際、3行目の1という数値は日付が入る列番号に置きかえる。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim DateStr As String   If Target.Column <> 1 Then 'A列なら1、B列なら2...     Exit Sub   End If   DateStr = Target.Value   If Len(Target.Value) <> 4 Then     MsgBox "日付を4桁で入力してください", vbExclamation, "入力エラー"     Exit Sub   End If        Target.Value = Format(Left(DateStr, 2) & "/" & Right(DateStr, 2), "yyyy年m月d日(aaa)") End Sub

noname#186192
質問者

お礼

出来ました! ご丁寧にありがとうございました

noname#186192
質問者

補足

ham_kamo様 ご丁寧にありがとうございます 僕の希望としてはその3のそのセルに打ち込んでやる方法をしたかったのでマクロの方法をとる事にしました。 マクロの作成法なんですが、 自分が作成しているシートの日付の場所がB2なんですが、 その場合のマクロの文は Private Sub Worksheet_Change(ByVal Target As Range)   Dim DateStr As String   If Target.Column <> 2 Then     Exit Sub   End If   DateStr = Target.Value   If Len(Target.Value) <> 4 Then     MsgBox "2006", bExclamation, "入力エラー"     Exit Sub   End If        Target.Value = Format(Left(DateStr, 2) & "/" & Right(DateStr, 2), "yyyy年m月d日(aaa)") End Sub でよろしいでしょうか? 度々すいませんがご教授よろしくお願い致します。

その他の回答 (4)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

1231では無理かもしれませんが 12/31では出来ますね これでは駄目ですか? ただ何年に認識されるかが入力値と設定で千差万別になる可能性がありますが… やり方ですが セルの書式設定をお好みの書式に変えてから (この場合だとyyyy"年"m"月"d"日"(aaa)ですね) 12/31と入力してみてください お求め通りの2006年12月31日(日)という表記に変わると思いますよ 如何でしょうか? これで事足りましたでしょうか?

noname#186192
質問者

お礼

はい おっしゃるとおりでした 私が希望していた方法でした ありがとうございました

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

エクセルの関数は入力した値を受け取って、処理して、入力したセルの値としてセットできません VBAならできます。 したがって入力はA1セル、望みのデータはB1セルのようにならざるを得ません。 B1に入れる式ですが =DATE(2006,LEFT(A1,2),RIGHT(A1,2)) です。DATE関数は第1、第2、第3引数は数ですが、文字列でも良いようです。DATEVALUE関数も使えます。 ただ2007年のなると第1引数を変えないといけませんので、不便ですが、楽をする以上この点は致し方ない。 VBAでは、A列に1123、304など入れるとして、A列を日付書式にしておくこと。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Application.EnableEvents = False d = Target.Value Target = DateSerial(2006, Int(d / 100), d Mod 100) Application.EnableEvents = True End If End Sub エラーが起こると Sub test01() Application.EnableEvents = True End Sub を実行して、やり直し。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.1です。 はい、B列の場合は2に変更であってます。 あと、メッセージを修正したときに誤って削ったのかもしれませんが、 MsgBox "2006", bExclamation, "入力エラー" の bExclamation は vbExclamation なので、念のため。(!マークを出すという意味です)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。すみません、先ほどの回答、全て 2006年11月23日(木) は 2006年12月31日(日) の誤りです。

関連するQ&A

  • Excelの日付の入力

    今、Excelを使用しているのですが、 Excelにて例えば、2010/07 と入力してEnterを押すと、Jul-10 という表示に変わってしまいます。 どうしても 2010/07 という感じで他にも沢山入力していかないとならないのですが、どの様にしたら 2010/07 と表示されますでしょうか? どなたか教えてください。 お願いします。

  • エクセルでの日付入力

    エクセル2000を使っています。 和暦で入力しても、西暦で入力しても、和暦で表示 させるようにしたいのです。 ex)入力時      表示   2003/12 → H15/12   15/12   → H15/12  4桁の数字が入力されたら和暦変換して、2桁以下の数字が入力されたらそのまま表示する…なんてことが 出来たらとてもうれしいのですが。 よろしくおねがいします。

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

  • Excelで日付を数字8桁で入力、表示は和暦での方法

    Excelで日付を「20080205」と8桁数字で入力し、 表示を「平成20年2月5日」とさせる方法を教えてください。 「########」と表示され困っています。

  • エクセルの日付入力

    基本的なことかもしれませんが教えてください!! 会社で使用しているエクセルで作成したフォーマットに、何箇所かのセルに日付を入力していってます。 (1)「8/9」とテンキーで入力してエンターを押すと、「8月9日」と自動的にかわります。 この数字部分を「8月9日」と全角に自動的に変えるには書式設定などどうしたらいいですか? (2)同じく、「8月1日から8月10日」と1つのセルで、上の(1)のようにテンキーだけを使って入力していきたいのですが、どのように設定したらいいですか? 説明がわかりにくいかもしれないのですが、お解かりの方いらっしゃれば教えてください。 よろしくお願いします。

  • エクセルの日付入力で教えてください。

    EXCEL2002を使用しています。例えばエクセルのセルに日付を2/8と入力すると2月8日と表示されますよね。あるときから、2/8と入力すると、8月2日と表示され、困っています。8/2と入力すると2月8日と表示はしますが、初期の状態に戻す方法をご存知の方は教えてください。

  • Excelでの日付入力

    Excelの超々初心者です。 Wordばかり使用して来て最近Excelに挑戦、どうにか表計算が出来るようになりましたが、各セルへ「1月 1日」「1月15日」「12月 1日」「12月31日」と全角で入力すると「1月15日」と「12月31日」の数字が自動的に半角になって不揃いになってしまいます。 色々なサイトで調べ、5日間取っ組んできましたが、最早、ダルマの心境、手も足も出ません。 月日を揃えて入力する方法をご教授ください。

  • エクセルで数値入力

    こんにちは、エクセルの数値入力でつまづいています。 ただ単に、ある一つのセルに「ゼロから始まる数字」を入力したいのですが、入力後にエンターをクリックするとゼロの部分は表示されず、残りのけたのみが表示されます。 例えば、「0002512」のように入力したいのですが、「2512」となってしまう、ということです。 セルの書式設定でいろいろとトライしてみましたが、うまくいきませんでした。 どうぞ教えてください。 ありがとうございました。

  • EXCELで日付入力できません

    EXCELで2003/8/20と入力すると1900/1/12と表示されます。数式バーの表示セルを見ると=2003/8/20と表示されています。入力する時は数字だけ2003/8/20と入力しているのですが、enterすると=がつきます。割り算を実行しているようです。セルの書式は日付で1997/3/4を選択しています。入力規則はありません。前日にコンパネで日付と時刻の調整をしました。OSはWINDOWS98でOFFICE97です。とりあえず、'2003/8/20と入力しています。少しはEXCELを知っているつもりだったのですが、まだまだ奥が深いです。

  • エクセルのセルに日付だけ入力

    エクセル2007を使用していています。 ○○年○○月△△日のうち△△だけ(”日”の字も除いて数字だけ)を自動的にセルに入力されるようにしたいのですが、やり方がわかりません。 誰かわかる方がいましたら教えてください。 よろしくお願いします。

専門家に質問してみよう