[[20230902221926]] 『VBA 日付の表示変更』(がん) ページの最後に飛ぶ

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

 

『VBA 日付の表示変更』(がん)

CSVデータを取込しています。
CSVデータでは日付の表示がyyyy/mm/ddとなっています。
この表示を下記のマクロでyyyymmddに変換したいのですが、99999999に変換できません。
9999/99/99 ⇒ 99999999
と表記を変更したいのですが、良い方法ありませんか?

< 使用 Excel:Excel2021、使用 OS:Windows11 >


種々方法は有ろうとは存じますが
シリアル値にはなっているのでしたら
読込み後、当該の範囲の書式をその様[yyyymmdd]に変更する
のも、一案かと思いますです。
一番簡単かもしれません。←と私は思います。。。(*^^*)

m(__)m
(隠居Z) 2023/09/02(土) 23:22:00


>下記のマクロで
どこにマクロがあるのですか。
(gann) 2023/09/03(日) 08:12:39

99月99日が存在するなら、yyyymmdd とすることも可能かも。
現実には存在しないので、単純に"/"を""にReplaceするとか?

(wss) 2023/09/03(日) 18:34:49


「下記のマクロ」とやらが提示されるまで待ってみるつもりでしたが、その兆しがないので見切り発車。

トピ主のいう「9」は、COBOLなどでいう「数字1桁」として考えると、やりたいことは、CSV上では【日付型(として解釈できる文字列)】になっているものを、取り込み時に【8桁の数字】に変換したいという話でしょうか。
既にアドバイスがありますが、取り込み時ではなく【取り込んだ後に】変換するのではだめなんでしょうか?

見た目さえ変わればよいのであれば、隠居Zさんのアドバイスで解決すると思いますが、値そのものを変えたいという話ならば↓のような感じにすればよいと思います。

    Sub 変換()
        Dim buf As Variant, i As Long
        With ActiveSheet
            buf = .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Value
            For i = 1 To UBound(buf, 1)
                buf(i, 1) = Format(buf(i, 1), "YYYYMMDD")
            Next i

            With .Range("A1").Resize(UBound(buf, 1))
                .NumberFormatLocal = "G/標準"
                .Value = buf
            End With
        End With
    End Sub

(もこな2) 2023/09/03(日) 20:25:22


コメント返信:

[ 一覧(最新更新順) ]


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