プロが教える店舗&オフィスのセキュリティ対策術

書式の日付で「2001/3/14」というタイプがありますが、「1/1」と入力すると、自動的に2013年とその年の西暦が入力されてしまいます。

西暦を打たずに日付だけ入力し、任意の西暦(例えば2011年)が自動で表現させるにはどうしたらよいでしょうか?

A 回答 (5件)

通常はできません。



「1/1」と入力したあとで、2013を2011に全て「置換」を行ってはいかがでしょう。

あるいは、2011/1/1と入力してはいかがでしょう。

この回答への補足

できましたよ。

「セルの書式設定>表示形式>日付」での設定では、こう説明されています。

「…アスタリスク(*)で始まる日付形式は、オペレーティングシステムで指定する地域の日付/時刻の設定に応じて変わります。アスタリスクのない形式は、オペレーティングシステムの設定が変わってもそのままです」

同じ形式でもアスタリスクがついてない形式を選べばよいのです。

補足日時:2013/04/15 14:32
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

やっぱりできないですかー。置換がいちばん妥当ですかね。

お礼日時:2013/03/14 17:26

ユーザー定義で


"2011/"mm/dd
とすれば表示上は2011/1/1となります。(1/1と打った場合)

しかし、内部データ的には2013/1/1であり、
荒業中の荒業といえます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

内部データ的にはあくまでも当年なのですね。
了解です。

お礼日時:2013/03/14 17:26

こんにちは!


No.1さんが仰っているように少々手間がかかっても
2011/1/1
のように入力する方法が間違いがなく良いと思います。

どうしても 1/1 のように入力し、2年前の 1/1 のシリアル値にしたい場合は
VBAになってしまいますが、一例です。

A列に1/1のように入力するとします。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてA列に日付データを入力してみてください。


Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Application.Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
With Target
.Value = DateAdd("yyyy", -2, Target) '←「-2」の部分で年数を調整
.NumberFormatLocal = "m/d"
End With
Application.EnableEvents = True
End Sub 'この行まで

※ セルの表示形式は m/d としていますので、好みで変更してみだくさい。m(_ _)m
    • good
    • 0
この回答へのお礼

詳しいご回答ありがとうございます。

なんだか大げさになってしまいますね。置換がいちばんよいかと思いました。

お礼日時:2013/03/14 17:27

パソコンの日付で判断しますから日付を変えてしまうっていうのもありかもしれません。


ただし、カレンダーを元に戻してから最終保存しましょう。
要管理者権限
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど、いろいろなアイデアがあるんですね!

お礼日時:2013/03/14 18:15

オートコレクトのオプションで、例えば「..」(ピリオド2つ)を「2011/」と変換するように登録しておくと、例えば入力時に「..1/1」と入れると「2011/1/1」と変換されます。



私は「..」が「:」となるように登録しているの日付での使い方はしないんですが、入力する年が今年ではない日付を入れる事が多いようでしたらお試しください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!