🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

359閲覧

VBAで日付をformat関数で”-”にしたい

yuchin.

総合スコア7

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/12/11 09:31

/で区切られた日付を-で区切るようにしたいのですが、どうしても/で区切られたままでてきてしまいます。
2019/9/31-> 2019-09-31のように変換したい。

VBA

1Sub date_change() 2 Dim i 3 4 For i = 1 To 100 5 str_date = CDate(Cells(i, 2)) 6 Cells(i, 2) = Format(str_date, "yyyy-mm-dd") 7 8 Next 9 10 11End Sub

デバッグすると6行目のCells(i, 2)でも、2019/9/31のようになったままでした。

Split関数も使ってやってみましたがそちらもうまくいかず。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

セルの書式が「標準」か「日付」になっているのでしょう。

書式を変更すればご希望の表示になります。

vba

1Sub date_change() 2 Dim i As Long 3 4 For i = 1 To 100 5 Cells(i, 2).NumberFormatLocal = "yyyy-mm-dd" 6 Next 7 8End Sub

ループさせなくても一気に変更することもできます。

vba

1Sub date_change() 2 3 Range(”B1:B100").NumberFormatLocal = "yyyy-mm-dd" 4 5End Sub

2019/12/11 とか 2019-12-11 とか令和1年12月11日というように日付と扱えるようなデータは、日付としてセルに格納されます。(実際には1900年1月1日を基準日としてその日から経過日数が格納されている。=日付シリアル値)
それを書式設定で、いろいろな書式に変換して表示している。表示上の値と内部に格納されている値は異なる。

投稿2019/12/11 09:57

編集2019/12/11 10:26
hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuchin.

2019/12/12 00:53

2つ目のコードを試したところうまくいきました!ありがとうございました!
guest

0

日付の書式設定は、システム設定の
時刻と言語→日付、時刻、地域の書式設定→データ形式を変更する
からの「日付(短い形式)」で決定されています。
ここを変更する事で日付の書式は変更できます。

ですが、PCの設定に依存するので、セルの書式設定が確実ですね。

投稿2019/12/11 10:53

編集2019/12/12 01:24
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

VBAやったことないのでうまく行くかわかりませんが
Cells(i, 2) = Format(str_date, "yyyy" & "-" & "mm" & "-" & "dd")
こんな感じでできないですかね。

(できなかったらすみません)

投稿2019/12/11 09:57

Nash-BETA

総合スコア233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問