Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2408 / 13645 ツリー ←次へ | 前へ→

【68129】文字の挿入と日付認識 ゆき 11/2/3(木) 21:19 質問[未読]
【68130】Re:文字の挿入と日付認識 UO3 11/2/3(木) 22:07 回答[未読]
【68132】Re:文字の挿入と日付認識 Jaka 11/2/4(金) 9:35 発言[未読]
【68153】Re:文字の挿入と日付認識 kanabun 11/2/7(月) 12:43 発言[未読]
【68209】Re:文字の挿入と日付認識 ゆき 11/2/15(火) 6:01 質問[未読]
【68214】Re:文字の挿入と日付認識 Jaka 11/2/15(火) 9:28 発言[未読]
【68215】Re:文字の挿入と日付認識 UO3 11/2/15(火) 9:40 回答[未読]

【68129】文字の挿入と日付認識
質問  ゆき  - 11/2/3(木) 21:19 -

引用なし
パスワード
   下記のように、年月欄のところに198302(1983年2月という意味)
と列に入力がされています。
それを、年月日欄に日にちを『1』と『/』付けとして文字を日付と
認識するようにしたいです。1983/2/1のような感じで。
以上、アドバイスを願いたいです。
よろしくお願い致します。

(年月)  (年月日) 
198302   
201003
 ・      ・
 ・      ・
 ・      ・

【68130】Re:文字の挿入と日付認識
回答  UO3  - 11/2/3(木) 22:07 -

引用なし
パスワード
   ▼ゆき さん:

こんばんは。1行目がタイトル行とします。

Sub Sample1()
  With Worksheets("Sheet1") '<== 実際のシート名に
    With .Range("B2").Resize(.Range("A1").CurrentRegion.Rows.Count - 1)
      .Formula = "=Left(A2,4)&""/""&Mid(A2,5,Len(A2)-4)&""/01"""
      .Value = .Value
      .NumberFormatLocal = "yyyy/m/dd"
    End With
  End With
End Sub

【68132】Re:文字の挿入と日付認識
発言  Jaka  - 11/2/4(金) 9:35 -

引用なし
パスワード
   >(年月)  (年月日) 
>198302   
>201003
 ↑
A列だとして、B列に =A1&"01" と書いて下にフィル。
数式を書き込んだセル範囲をコピーして、同じ所に値だけ貼り付け。

セルが選択されている状態で、
データ → 区切り位置 → 次へ次へで3ページ目の日付(YMD)に
チェックして、完了。

【68153】Re:文字の挿入と日付認識
発言  kanabun  - 11/2/7(月) 12:43 -

引用なし
パスワード
   ▼ゆき さん:

同じようなものですが、
[A2]以降の6桁の数値データを B列に日付化して表示

  With Range("A2", Range("A2").End(xlDown)).Offset(, 1)
    .NumberFormat = "yyyy/mm/dd"
    .Value = Application.Text(.Offset(, -1), "0000""/""00""/""1")
  End With

【68209】Re:文字の挿入と日付認識
質問  ゆき  - 11/2/15(火) 6:01 -

引用なし
パスワード
   遅くなりましたが、回答ありがとうございました。
無事することができました。

あと一つ、アドバイスして頂けないでしょうか。

下記のように、年月欄の隣に取得年数欄を設けました。
以前のアドバイスで、年月日欄に年月欄の値を用いて、
198302(1983年2月という意味)⇒1983/2/1という表示
をさせることができました。
その年月日から、取得年数をまず足して、
(例:1983/2/01⇒+5年⇒1988/2/01)
その年数表示から、前月の月末表示したものを、取得年月日欄
に表示させたいのです。
(例:1988/2/01⇒1988/1/31)

アドバイス、よろしくお願い致します。


▼ゆき さん:
>下記のように、年月欄のところに198302(1983年2月という意味)
>と列に入力がされています。
>それを、年月日欄に日にちを『1』と『/』付けとして文字を日付と
>認識するようにしたいです。1983/2/1のような感じで。
>以上、アドバイスを願いたいです。
>よろしくお願い致します。
>
>(年月)  (年月日) 
>198302   
>201003
> ・      ・
> ・      ・
> ・      ・

【68214】Re:文字の挿入と日付認識
発言  Jaka  - 11/2/15(火) 9:28 -

引用なし
パスワード
   >その年月日から、取得年数をまず足して、
>(例:1983/2/01⇒+5年⇒1988/2/01)

=DATE(YEAR(A1)+5,MONTH(A1),1)

>(例:1988/2/01⇒1988/1/31)
先ほどの日付から1を引くか、
=DATE(YEAR(A1)+5,MONTH(A1),1)-1

【68215】Re:文字の挿入と日付認識
回答  UO3  - 11/2/15(火) 9:40 -

引用なし
パスワード
   ▼ゆき さん:

関数による方式がJakaさんから提示されましたのでVBA方式を。
以下はサンプル部品です。

Sub Sample()
  Dim d1 As Date, d2 As Date, d3 As Date
  d1 = "1983/2/01"             '基準日
  d2 = DateAdd("yyyy", 5, d1)       '5年を加える
  d3 = DateSerial(Year(d2), Month(d2), 0) 'その年月の0日、つまり前月最終日
  MsgBox d1 & vbLf & d2 & vbLf & d3
End Sub

2408 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free