Excel (VBA)

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

 
(Windows 7 Professional : Excel 2013)
シリアル値を日付に変換
投稿日時: 17/06/14 16:43:57
投稿者: shamo

お世話になります。
 
     T     U     V     W    X
10 42899
11             42983     
12       42900
13                        42880
 ・                   42189
 ・       42895
 ・
 
T10:X〇までシリアル値が入ってます
(最終行は不確定です。A列には最終行まで必ず値が入ってます)
 
このシリアル値を日付け(”mm/dd")に変換したいのですがどうすればいいでしょうか。

投稿日時: 17/06/14 16:58:22
投稿者: shamo

自分なりに考えたのですが、XXXの部分がよく分かりません。
※これが合ってるかかどうか分かりません、、、
 
Sub ageage()
Dim 範囲 As Range
Dim r As Long
r = ActiveWorksheets.Cells(Rows.Count, 1).End(xlUp).Row
For Each 範囲 In Range("T10:X" & r)
    If 範囲 Is Nothing Then
        XXXXXXXXXX
    End If
Next 範囲
End Sub

回答
投稿日時: 17/06/14 17:03:28
投稿者: Suzu

こんにちは。
 
手順1:T10 を選んだ状態で、「Shift」を押しながら X〇 までを選択。
                        (CTL+SHIFT+END とか、SHIFT+方向キー)
                        (X列 の最下段【X列のどこかにカーソルを置いて下方向ずーっと押し】
                          を選択した状態で CTL+↑ でXの最終セルが選択できます。)
手順2:セルの書式設定で、”mm/dd"を設定
 
これでは、不足しているのでしょうか。
 
 
VBAにこだわりがおありでしたら、上記をマクロの自動記録で記録してみましょう。
コードをみて判らない所を質問してください。

回答
投稿日時: 17/06/15 16:42:07
投稿者: mattuwan44

>このシリアル値を日付け(”mm/dd")に変換したいのですがどうすればいいでしょうか。
こちらの疑問は、
マクロ化するときにセル範囲を特定(限定)する方法が解らないのか、
見た目だけ日付にしたいのか、
値として文字列で"mm/dd"の形式に変更したいのか、
どれでしょうか?
 
セルの書式設定で見た目だけ変えるとしてコメントすると、
T列からX列まで列をまるごと選択して、セルの書式設定のユーザー定義で
mm/dd
としたらいいと思います。
 
 

投稿日時: 17/06/15 18:41:32
投稿者: shamo

お世話になります。返事が遅くなり申し訳ありません。
 
For eachを使った時、どのように書けばいいのか?
と、言うのが目的でした。
 
下記内容でやりたい事は出来ました。
 
Sub test()
Dim r As Long
r = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("T10:X" & r).NumberFormatLocal = "m/d"
End Sub
 
ありがとうございました<(_ _)>