[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付の入力について』(とおる)
日付を7ケタ数字で入力したいのですが・・・例えば「4160119」と入力すれば「平成16年1月19日」となるようにしたいのです。同じように「3581112」ならば「昭和58年11月12日」となるように、最初の桁が「3」なら昭和、「4」なら平成、というようにしたいのです。こんな事は可能でしょうか?
どなたか教えてください。お願いします。
何を入力して何を表示するのでしょうか? また、どこに入力して、どこに表示するのでしょうか?セルですか?
(INA)
そんな事はできないでしょう。いいじゃないですか、隣のセルで。
(ます)
年月日が二桁表示になりますが、表示形式のユーザー設定で。 [>4000000]0*"平成"00"年"00"月"00"日";[>3000000]0*"昭和"00"年"00"月"00"日";; ↑ ↑ ここでCtrl+J ここでCtrl+J 書式設定の配置で「折り返して全体を表示」にチェック。 行の高さによっては表示できないので、高さを調節してください。 数値の見栄え整えただけなので、日付関数では工夫しないと計算できません。 個人的には日付形式での入力をお勧めします。 もしくは「20040101」形式で「区切り位置」機能で一括日付変換ですね。 (KAMIYA)
1.ALT+F11キーで、VBEを起動 2.プロジェクトウィンドウの Sheet1 を Wクリック 3.中央の真っ白なウィンドウ(コードウィンドウ)に以下のコードをコピペ
これで Sheet1 の A1:A10、C1、D2 セルは、数値を入力すると変換されます。
'ここから Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("A1:A10,C1,D2")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Len(Target.Value) <> 7 Then MsgBox "7文字で入力して下さい。", 48, "入力エラー" Target.ClearContents Target.Select Application.EnableEvents = True Exit Sub End If
If IsNumeric(Target.Value) = False Then MsgBox "数字で入力して下さい。", 48, "入力エラー" Target.ClearContents Target.Select Application.EnableEvents = True Exit Sub End If
Select Case Left(Target.Value, 1) Case 3 Target.Value = "昭和" & Mid(Target.Value, 2, 2) & "年" & Format(Right(Target.Value, 4), "m月d日") Case 4 Target.Value = "平成" & Mid(Target.Value, 2, 2) & "年" & Format(Right(Target.Value, 4), "m月d日") End Select
Application.EnableEvents = True End Sub 'ここまで。
(注)もし、動かないときは、デザインモードになっていないか確認してください。
(INA)
>日付が入力分と異なって表示されます。 検証不足で失礼しました。 以下のように修正しましたので、参考にして下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
'対象セルは、A1:A10,C1,D2 If Application.Intersect(Target, Range("A1:A10,C1,D2")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub '空白は終了
Application.EnableEvents = False
If Len(Target.Value) <> 7 Then MsgBox "7文字で入力して下さい。", 48, "入力エラー" Target.Select Application.EnableEvents = True Exit Sub End If
If IsNumeric(Target.Value) = False Then MsgBox "数字で入力して下さい。", 48, "入力エラー" Target.Select Application.EnableEvents = True Exit Sub End If
Select Case Left(Target.Value, 1) Case 3 Target.Value = Format("昭和" & Mid(Target.Value, 2, 2) & "年" _ & Mid(Target.Value, 4, 2) & "月" & Right(Target.Value, 2) & "日", "ggge年m月d日") Case 4 Target.Value = Format("平成" & Mid(Target.Value, 2, 2) & "年" _ & Mid(Target.Value, 4, 2) & "月" & Right(Target.Value, 2) & "日", "ggge年m月d日") Case Else MsgBox "先頭の文字は、3 又は 4 でないと変換できません。", 48, "入力エラー" Target.Select End Select
Application.EnableEvents = True End Sub
(INA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.