Excel VBA質問箱 IV

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

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


43510 / 76735 ←次へ | 前へ→

【38272】参考までに
回答  杉本  - 06/5/30(火) 20:28 -

引用なし
パスワード
   自分が別の処理で日付変換している実際のコードをアップしておきます。

実際の文字が「19990512」
と並んでいるときの処置です。

西暦固定で元々処理してます。
和暦の場合は処置としては
昭和元年が1926年
平成元年が1987年
ですので それぞれ S=1925を加算
H=1986を加算すれば西暦になります。
よってそれらを加算するものをつくれば下のものをそのまま応用可能です

別の方法は
DateValue関数を利用することですが
和暦の場合[H16-4-2]
と表示が基本ですので前処理が必要です
また、文字列しか認識しないため、文字列にする前処理も
必要です


----------------------------------------
Sub 日付変換処理()
'
' 日付変換処理 コア部分
'
'
' 文字列8文字をエクセル日付書式に変更
'
' セルの書式も日付に変更

  Dim varA As Variant   '20020909で表示
  Dim strC(3) As String
  Dim datB As Date    '代入後そのセルが日付属性をもつことになる
  Dim strD As String

  strD = "/"
  
  varA = ActiveCell.Value
    strC(1) = Left(varA, 4)   '西暦(4桁)
    strC(2) = Mid(varA, 5, 2)  '月(2桁)
    strC(3) = Right(varA, 2)  '日(2桁)
    datB = CDate(strC(1) + strD + strC(2) + strD + strC(3))
  ActiveCell.FormulaR1C1 = datB
  
End Sub
------------------------------------------------------------------------
Sub 日付に変換()
'
' 範囲を選択して そのデータを日付にする。
'
  Dim 行数 As Long, 列数 As Integer
  Dim i As Long, j As Integer
  Dim セル As Variant
  
    
'  ActiveCell.CurrentRegion.Select
' 範囲選択の行列(サイズ)を変数に代入
  列数 = Selection.Columns.Count
  行数 = Selection.Rows.Count
  
  For i = 1 To 行数
    For j = 1 To 列数
      Selection.Cells(i, j).Activate
      セル = ActiveCell.Value
      ' 8桁以外は無視
      If Len(セル) = 8 Then
        Application.Run "日付変換処理"
      End If
      
    Next j
  Next i
End Sub
0 hits

【37479】文字列を日付に変換したいのですが。 haru 06/5/9(火) 13:10 質問
【37480】Re:文字列を日付に変換したいのですが。 Jaka 06/5/9(火) 13:41 発言
【37481】Re:文字列を日付に変換したいのですが。 Jaka 06/5/9(火) 13:44 発言
【37495】Re:文字列を日付に変換したいのですが。 inoue 06/5/9(火) 20:01 発言
【37497】Re:文字列を日付に変換したいのですが。 ponpon 06/5/9(火) 20:08 発言
【38272】参考までに 杉本 06/5/30(火) 20:28 回答
【38296】Re:参考までに かみちゃん 06/5/31(水) 0:07 発言

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