

No.3ベストアンサー
- 回答日時:
No1です。
以下のマクロを標準モジュールに登録し実行しました。
こちらの環境では、4月16日が表示されるようになりました。添付図の実行前と実行後を参照ください。
Public Sub test()
Dim i As Long
For i = 1 To 30
Cells(i, "A").NumberFormatLocal = "m""月""d""日"";@"
Next
End Sub
cells(i,"A")はアクティブシートに対して作用します。
あなたが、月日データにしたいシートはアクティブシートになってますか。

今回も早速の回答、更に2枚のキャプチュア図を添付して頂き恐縮です。
最初の質問時のマクロと同じなのに、当方では旨く行っていなかったので、デバッガーを走らせて確認した所、上記のマクロ直後は正常に月日データに変換されていたのですが、その後方で(ある理由から)それらのセルに対して ClearFormats のコードを記述してしまっていて、ここで元のシリアル値に戻っている事に気付きました。
今回のトラブルの原因はこちらのうっかりミスでした。
tatsu99 さんには再度に渉り御指導頂いて御迷惑をお掛けしました。
しかし、これに気付かされたのも tatsu99さんのお蔭です。
心より感謝致します。
今後、また質問せざるを得ない時が来るかとは思いますが、その節はこれに懲りずに宜しくお願い致します。
No.2
- 回答日時:
ふつうは、VBAでシリアル値を直接貼り付けることはしませんね。
面倒だからです。
>ネットで検索してもこの様な例を見つける事ができませんでした。
そのようなことをする人がいないだけです。
しかし、まったくないわけではありません。その時に気をつけなくてはならないのは、書式は先にしなければなりません。なぜかというと、後にいれると値が変わることがあるからです。日付にはありませんが、時間値がかわってしまったりすることがあるそうです。
'//
Sub TestSerial()
Dim Start As Long
Dim i As Long
Start = 42841
For i = 1 To 30
Cells(i, 1).NumberFormat = "m月d日" '*
Cells(i, 1).Value = Start - 1 + i
Next
End Sub
ではどうするかというと、
Sub TestSerial2()
Dim Start As Long
Dim i As Long
Start = 42841 'ただし、ここはデイト型にしたほうが可読性がよいです。
For i = 1 To 30
Cells(i, 1).Value = Format(Start - 1 + i, "m月d日")
Next
End Sub
'-------------
Dim Start As Date 'デイト型にして
Start = #4/16/2017#
For i = 1 To 30
Cells(i, 1).Value = Format(Start - 1 + i, "m月d日") 'Format$にはしない
Next
折角、即座に回答して頂いた(しかも複数のサンプルで)にも関わらず、その後、風邪でダウンしてしまい返事が大変送れてしまい申し訳ありませんでした。
当方の舌っ足らずもあったとは思いますが、 インクリメンタル値の i はA列の各行のセル番号です。
そしてその各セル Cells(i, 1) に不連続なシリアル値が格納されているとお考え下さい。
そこで WindFallerさんのコードを参考にして闇雲に次のようにコーディングしたのですが、これでも各セルの値は元のシリアル値のままで変化はありませんでした(当然なのでしょうが)。
For i = 1 To 30
Cells(i, 1).Value = Format(Cells(i, 1), "m月d日")
Next
もし、別な解決方法を教えて頂ければ有り難いのですが、宜しくお願い致します。

No.1
- 回答日時:
そのセルの表示形式を日付にすれば、4月16日と表示されますが、それではだめなのでしょうか?
それとも、42841を直接"4月16日"の文字列に変換したいということでしょうか。
質問の投稿後、風邪でダウンしてしまい返事が大変送れてしまったことを深くお詫びします。申し訳ありませんでした。
先ず、「表示形式を日付にすれば」との件は、今回扱おうとしているデータは毎日数百個に上るので手作業では略不可能です。
従って、御指摘の通り、「42841を直接4月16日の文字列に変換したいということ」です。
良い解決策があれば御教示下さい。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) VBA EOMonthについて 5 2023/02/10 11:51
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのSheet番号って変更でき...
-
マクロの「SaveAs」でエラーが...
-
VBA別シートの最終行の次行へ転...
-
VB2005でExcelのグラフのデータ...
-
ExcelのVBマクロを、バックグラ...
-
マクロ実行後に別シートの残像...
-
VBAで変数の数/変数名を動的に...
-
VBAでEXCELから固定長...
-
Excel 条件一致の別シートの行...
-
まとめシートから集計シートへA...
-
ExcelのVBAでグループ分けしたい
-
VBA 空白行に転記する
-
【VBA】複数シートのデータを1...
-
VBA Userformで一部別シートに...
-
100万件越えCSVから条件を満た...
-
アクセスからエクセルへ出力時...
-
Unionでの他のシートの参照につ...
-
vba 連続するとうまく作動せず
-
Changeイベントで複数セルへの...
-
VBAで、1つのエクセルで、2つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
マクロ実行後に別シートの残像...
-
VBA別シートの最終行の次行へ転...
-
Count Ifのセルの範囲指定に変...
-
VBA 別ブックからの転記の高速...
-
Changeイベントで複数セルへの...
-
【VBA】特定の条件でセルをコピー
-
100万件越えCSVから条件を満た...
-
楽天RSSからエクセルVBAを使用...
-
複数シートの複数列に入力され...
-
Excel VBA オートフィルターで...
-
VBAで変数の数/変数名を動的に...
-
Unionでの他のシートの参照につ...
-
Excel2013で切り取り禁止
-
VBA 実行時エラー1004 rangeメ...
-
ExcelのVBマクロを、バックグラ...
-
VBA 最終行を選んだシートにコ...
-
アクセスからエクセルへ出力時...
おすすめ情報