Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : 指定なし)
ユーザーフォームでのテキストボックスについて
投稿日時: 19/07/06 16:43:23
投稿者: ぜんまい侍

こんにちは。
最近、W7からW10に買い換えました。
エクセル2013から2019になり色々システムの確認をしています。
 
確認中に
ユーザーフォームのテキストボックスに日付を入力すると
日付が逆になってしまいます。
例 2019/7/5と入力すると結果5/7/2019
入力した通りyyyy/m/dの
形式にならないでしょうか?
宜しくお願いいたします。

回答
投稿日時: 19/07/06 23:02:32
投稿者: よろずや

Windowsの設定→時刻と言語→地域→地域設定データ→カレンダー
の値を確認してください。
 
プログラムとしては、Windowsの設定に左右されないように書くのが常識です。
チャンとFormatして表示しましょう。

回答
投稿日時: 19/07/07 10:28:42
投稿者: WinArrow
投稿者のウェブサイトに移動

>例 2019/7/5と入力すると結果5/7/2019
 
テキストボックスは、テキスト形式ですから、
入力した通りにしか表示できないと思いますが、
 
どのように確認したのでしょうか?

投稿日時: 19/07/10 00:15:33
投稿者: ぜんまい侍

皆さんご返答ありがとうございます。
 
よろすやさんのPCの設定は実施ております。完了済です。
 
Win Arrowさんのテキストボックスはテキスト型であるので
入力した通りになるはずです。
とコメント頂きましたが確かにそうです。
 
内容を追加するなら、テキストボックスを入力すると、その数値がエクセル
シートのセルに表示するようになってます。
色々調べてわかったことが、その数値を表示するセルは
何の表示形式になってません。
そこで、表示させるセルを文字列に変更すると
テキストボックスがyyyy/mm/ddになることが分かりました。
 
もう一つ、付け加えると。
そこのセルには、アクセスから取り込むようにしていて
同じセルに日付が表示されるようにしています。
取り込んだ日付をテキストボックスに表示させると
dd/mm/yyyyになってしまいます。
セルの形式を調べると日付型になってました。
 
 
その後にテキストボックス内の日付を消して
もう一度、日付を入力すると、やっぱりdd/mm/yyyyになってしまいます。
 
どうも、セルの表示形式が問題なのでしょうか?

回答
投稿日時: 19/07/10 07:33:45
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:

もう一つ、付け加えると。
そこのセルには、アクセスから取り込むようにしていて
同じセルに日付が表示されるようにしています。

 
この情報は、付け加えることではなく、
最優先に説明すべき情報です。
 
アクセス側のフィールドの定義
特に、日付ですから、「日付/時刻型」だ絵ではなく、書式の設定に影響します。
 
それから、
Excelへの取込方にも影響するかもしれません。
 
方法としては
データベースクエリ
VBAによる取込
にも、影響します。

回答
投稿日時: 19/07/10 07:40:56
投稿者: WinArrow
投稿者のウェブサイトに移動

取込方法として、もう一つあります。
 
アクセス、テーブルを表示しておいて
EXCELシートにコピペする方法があります。
コピペ方式では、フィールド定義にはいぞオンせず
dd/mmmm/yy形式になってしまいます。
 
例、01-Mar-19 (2019/3/1)
 

回答
投稿日時: 19/07/10 08:31:19
投稿者: WinArrow
投稿者のウェブサイトに移動

大事な情報
 
「一旦、セルに設定した表示形式を
VBAで変更するには、「値」を代入する前に
表示形式を変更する」
ということです。
 
単に、
 
Cells(1,1).Value = Format(Date,"m月d日")
と記述しても。意図し帳にはならないです。
 
With Cells(1,1)
   .NumberFormatLoacl = "m月d日"
   .Value = Date
End With
この場合、Format(Date,"m月d日")とすると、「7月10日」という文字列になるから
注意が必要です。
 

回答
投稿日時: 19/07/10 09:45:03
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:
取込方法として、もう一つあります。
  
アクセス、テーブルを表示しておいて
EXCELシートにコピペする方法があります。
コピペ方式では、フィールド定義にはいぞオンせず
dd/mmmm/yy形式になってしまいます。
  
例、01-Mar-19 (2019/3/1)

の訂正版です。
 
アクセスのテーブル定義で
日付フィールドの書式設定を省略してある場合、
Excelにコピペすると
01-Mar-19
になるようです。
 
フィールドの書式設定で、「d/m/yyyy」と設定してある場合、
Excelにコピペすると
d/m/yyyy
になるようです。Office2007環境でテストしました。
 

投稿日時: 19/09/29 18:16:11
投稿者: ぜんまい侍

コメント遅くなりました。
しばらく対策してみて様子を見てましたが
以下の対応で解決したと思います。
 
テキストボックスの日付をセルに表示させる。
あるいは、アクセスから取り込んで同じセルに表示させる。
とコメントいたしました。
 
そのセルの場所の表示形式を文字列にして
保存して、もう一度入力するとyyyy/mm/ddになりました。
 
ここに投稿する前にも試して上手く行かなかったから
質問させて頂たのですが、これで解決したと思われます。
 
解決コメント遅くなりましたが
ありがとうございました。