• ベストアンサー

エクセルでフォームを使って日付を保存しようとしているのですが、なぜかシートに保存された表示形式が違う

エクセルでフォーム(VBA)を使って日付を保存しているのですが、 保存をした後シートの内容を見ると表示形式が違って保存されている。 保存のときに米暦に直すようにフォーマットをかけているのですが、保存されたデータは、”mm/dd/yy”ではなく、別の形式になってしまっている。 確認した症状としては、たとえば先月のデータであれば、通常に保存されているので今月のデータ(具体的には12/04/06と入力すると形式が、違って保存されてします。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 最初に、フォームではなく、UserFormだということで、書かせていただきます。フォームツールを使いこなす人もいないわけではありませんが。 >具体的には12/04/06と入力すると形式が、違って保存されてします。 それには、本来、まともにやるのだったら、入力を、自分が考える日付のDate型として認識させるコードが必要です。本来は、12/04/2006 とすれば、正しいDate型として認識しているはずです。 しかし、ごく簡単な方法は、ワークシート側の自動キャストが働かないようにして、テキストベースで、以下のように貼り付けることですね。たぶん、こんなところで、とりあえずは良いかもしれません。ただし、日付の入力間違いについては、チェックが働いていません。 例: Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim myDate As String 'Date型でなく、String型で If KeyCode = 13 Then 'Enter で、入力  myDate = TextBox1.Text  Cells(1, 1).NumberFormatLocal = "mm/dd/yy" '必ず先に来る  Cells(1, 1).Value = myDate End If End Sub

mysawaki
質問者

お礼

ありがとうございます。 Date型でやったら正しく認識しました。 テキストベースは、試してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

保存と言うのはCSV等ではなく、Excel形式で保存したファイルですか? 例えばCSVの場合、当然セルの書式設定情報を保持して保存されてないので「開く時」に勝手に変換されたりします。 テキストエディタで開くとちゃんと「12/04/06」となっていても、Excelでそのまま開くと「H12.4.6」になってしまうなど。 12/04/06 → H12.4.6(2000/4/6) 12/05/06 → H12.5.6(2000/5/6) 12/06/06 → H12.6.6(2000/6/6) この場合、データ-外部データの取り込み-テキストファイルのインポートで書式を指定して開いてやります。

mysawaki
質問者

お礼

ありがとうございます。 Date型を指定したら(yyyy)正しく認識しました。

全文を見る
すると、全ての回答が全文表示されます。
noname#153814
noname#153814
回答No.1

>今月のデータ(具体的には12/04/06と入力すると形式が、違って保存されてします。 今月のデータが、12/04/06 という意味がわかりませんが、 「書式」-「セル」-「日付」で直りませんか。

mysawaki
質問者

お礼

ありがとうございます。 Date型を指定したら(yyyy)正しく認識しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 元のテーブルはいじらずフォーム上のみで表示形式を変

    アクセスのフォームにコンボボックスを作り、値集合ソースにテーブル日付型のフィールドを指定し、 値集合タイプをテーブル/クエリにしてあります。 そのコンボボックスには問題なくデータは表示されるのですが、 コンボボックスに表示する日付の形式を、yy/mm/dd形式で表示させたいのです。 コンボボックスの書式をyy/mm/ddにしてみましたが、 yyyy/mm/ddのままです。 元のテーブルのデザインビューでフィールドの書式をyy/mm/ddにしたら、 連動してフォームのコンボボックスもyy/mm/ddになりましたが、 元のテーブルはいじらずフォーム上のみで表示形式を変えることは不可能なのでしょうか? よろしくお願いします。

  • EXCEL 日付の入力形式

    こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。

  • 地域言語オプションの日付形式を用いての日付編集方法

    コントロールパネルの地域と言語オプションから 地域オプションのカスタマイズ内の日付タブにある 短い形式を元に日付の編集を行おうとしています。 しかしこのまま短い形式をしようすると、 「年月日」の形式を取得してしまいます。 今回の用件では「年月」のみ必要なので「日」の形式を除外した形式で 日付の編集を行う必要があります。 ただしコントロールパネルから日付の形式が変更できる為、 各クライアントの端末毎に日付の形式が異なる為(※1) 単純に文字列の編集で「年月」を取得することが出来ず困っております。 ※1 クライアント毎の日付形式の例と行いたい変換後の形式の例 短い形式 → 変換後の形式 yyyy/MM/dd → yyyy/MM yy/M/d   → yy/M yy/MM/dd' ('ddd')' → yy/MM/ dd/MM/yyyy → dd/yyyy 開発言語は VisualStudio2008 C# で開発を行っています。 皆さんのお力をお貸しいただけないでしょうか。

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • PDFフォーム内で日付計算したいのです。

    Adobe ACROBAT9PROを利用してフォームを2つ作り、一方のフォームに日付を入れると、もう一方のフォームに翌日の日付が入るようにしたいのですが、フォームのプロパテイ>フォーマット>日付>「形式」にmm/ddとセットした後に、フォームのプロパティ>計算>簡略化したフィールド表記>編集>「javascriptの作成と編集」に何を入れればいいのか、いくら探しても出て来ません。どなたか教えて下さい。お願いします。

  • 他のシステムからExcelに日付を貼り付ける

    こんばんは。 過去の質問を見ていたのですが、同じような質問を見つけられなかったのでどなたか知ってたら教えてください。 タイトルにあるように他のシステム(Aとします)からExcelに日付をコピー・ペーストしたいのですが、AのフォーマットがDD/MM/YYになっています。 PCの日付の設定自体をRegional OptionsでDD/MM/YYに変えてしまえば話は早いのですが、それをMM/DD/YYにしたままExcelにペーストすると日にちが12日より大きいものはDate型として認識しません。 例えば10/12/03はDateとして認識されますが2003年10月12日として認識されます。(本当は2003年12月10日なんですが。)又、15/12/03(2003年12月15日)はDateではなくGeneralとして認識されます。右クリックformat Cellで日付型に変換しても、CustomizeでDD/MM/YYとしてもやはり日付として認識しません。どうやったらExcelに日付として表示させることができますか?

  • excel 日付で、0時が読み出せない

    エクセルのセルにyyyy/mm/dd hh:mm:ssの形式で日付と時間を入れている。これを エクセルVBAで Dim W as String W=Cells() で読み出したとき、0時の場合、Wには時間以降が無くなっている。 日付のフォーマットはこのままで、0時の時も0:00:00の部分が読み出せないでしょうか。 なお、Cells().Valueとしても同じです。 また、日付以外のデータも読み込む可能性が有ります。

  • 日付形式の設定変更について

    Win2000を使用しています。 先日、海外へ出張しており日付の形式を「mm/dd/yy」にしてましたので、これを「yyyy/mm/dd」に戻そうと思うのですがうまくいきません。 コントロールパネルの「地域のオプション」-「日付」タブで、カレンダーの種類を「西暦(日本語)」にして、短い形式を「yyyy/mm/dd」にして「適用」をクリックすると、 「無効な文字です」とのエラーが出てしまい、設定の変更が出来ません。 どなたか対処法ご存知ないでしょうか?

  • ACCESS日付形式について質問です。

    日付抽出条件を含んだフォームを作成したのですが、午前中までyyyy/mm/ddの形式で入力し、抽出できたのですが、今mm/ddの形式で入力しないと抽出できなくなりました。 変更をした覚えはないのですが・・・ yyyy/mm/ddで抽出できる方法を教えてください。 おねがいします。

  • エクセルの日付の表示形式

    エクセルの日付の表示形式で、たとえば「S56.01.24」と表示させたければ、ユーザー定義で種類から[$-411]ge.mm.dd;@を選択すればよいとありますが、このときの[$-411]とは何を表しているのでしょうか?よろしくお願いします。

専門家に質問してみよう