[[20221110091833]] 『日付変更について』(なはなは) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付変更について』(なはなは)

初めまして、vbaの初心者です。
データの整形をしておりまして、教えてください。
日付を変更したいです。データは、「yyyy/m/d」と「yyyy/m/d h:m」の二つです。
・yyyy/m/d ⇒ yyyy/mm/dd
・yyyy/m/d h:m ⇒ yyyy/mm/dd hh:mm
B列とC列ともに3000行くらいあります。

    |[A]   |[B]          |[C]   
 [1]|項目1 |項目2        |項目3
 [2]|      |2022/3/4     |2022/3/4 8:51    
 [3]|      |2022/7/20    |2022/7/7 9:30    
 [4]|      |2022/9/8     |2022/8/22 15:08  
 [5]|      |2022/3/2     |2022/7/5 15:08    
 [6]|      |2022/8/11    |2022/6/16 5:50

< 使用 Excel:Office365、使用 OS:Windows10 >


 =TEXT(B2,"yyyy/mm/dd")
 とか
 =TEXT(C2,"yyyy/mm/dd hh:mm")
 とか
 でいいんじゃないでしょうか?

(白茶) 2022/11/10(木) 10:11:42


白茶さん、回答ありがとうございます。
その他にもvbaを組んでおります。TEXT関数は認識しています。
vbaで実施したいため、質問しております。
(なはなは) 2022/11/10(木) 11:24:34

 その列を選択して表示形式を変更する。
 これをマクロの記録でどのようなコードになるかを確認してはどうだろうか?
(ねむねむ) 2022/11/10(木) 11:28:54

ねむねむさん、回答ありがとうございます。
上記にて、ユーザー定義で「yyyy/mm/dd hh:mm」で実施はしました。
表示上は、yyyy/mm/dd hh:mmになります。しかし、セルを選択するyyyy/mm/dd hh:mm:ssとなってしまいます。
(なはなは) 2022/11/10(木) 11:44:56

 日付データを文字列に変換したいということだろうか?
(ねむねむ) 2022/11/10(木) 11:58:42

Format関数で検索どうぞ
(ngk) 2022/11/10(木) 12:22:31

ねむねむさん、
文字列に変換したことになります。
日付の種類には、yyyy/mm/dd hh:mmはありません。
一度、確認してから教えていただけないでしょうか。
(なはなは) 2022/11/10(木) 12:30:33

ngkさん、
Format関数で検索どうぞ
⇒分からないため、聞いています。
 vbaで示してもらえませんか。
(なはなは) 2022/11/10(木) 12:31:55

多分時刻形式だと秒をなくすことはできないと思います。hh:mmに見せかけているだけなので。

無理やり文字列にしてみました。
他にスマートなやり方があると思います。

Sub test()

    Dim i As Long
    Dim v As Variant
    For i = 2 To 6
        Cells(i, 2).NumberFormatLocal = "yyyy/mm/dd"
        Cells(i, 3).NumberFormatLocal = "yyyy/mm/dd hh:mm"
    Next
    v = Range("B2:C6")
    Range("B2:C6").NumberFormatLocal = "@"
    Range("B2:C6") = v
    For i = 2 To 6
        Cells(i, 2) = Format(Cells(i, 2), "yyyy/mm/dd")
        Cells(i, 3) = Format(Cells(i, 3), "yyyy/mm/dd hh:mm")
    Next
End Sub

 >日付の種類には、yyyy/mm/dd hh:mmはありません。
 >一度、確認してから教えていただけないでしょうか。
日付の種類に時刻入りもありますけど......
(フォーキー) 2022/11/10(木) 12:41:04

被ったけど一応

検索して分からない、だと聞いても分からない気もするが・・・

A1に日付データ(シリアル値)が入っているとして
Format(Rnage("A1").Value,"yyyy/mm/dd")
で"yyyy/mm/dd"の文字列になります。

(ngk) 2022/11/10(木) 12:43:03


フォーキーさん、
ご回答ありがとうございます。

上記で試してみたいと思います。

日付の種類についてですが、時刻もありますが、
yyy/mm/dd hh:mmにはならないんです。
(なはなは) 2022/11/10(木) 12:53:56


 Format(Range("C2").Value, "yyyy/mm/dd hh:nn")
                                          ^^
 でないかな?
(通りすがり助六) 2022/11/10(木) 12:58:49

 mまたはmmだけだと月だがhの後に来た場合は分と判断されるのでhh:mmでも構わない。
(ねむねむ) 2022/11/10(木) 13:09:30

 ねむねむさん
 そうなんですね。知りませんでした・・。
 勉強になります。
(通りすがり助六) 2022/11/10(木) 13:35:27

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.