• 締切済み

VBAでの日付の置換方法を教えてください

Excel2007のVBAにて日付の置換ができなく困っております。 対象の複数列に入力されている下記の様なデータの内、日付の"yyyy/m/d"を "yyyy年m月d日"に置換しなくてはなりません。 ※書式設定ではなく、文字列として変換 入力例 1)2011/12/13 2)2011/12/1~2011/12/13 3)2011年12月13日 4)2011/12/1~2011/12/13の毎火曜 ヒントでも構いませんので、宜しくお願い致します。

みんなの回答

回答No.1

入力例にあるパターンだけでいいのならば以下のように処理しては如何でしょうか。 スラッシュの個数を調べる  2個の場合   1個目のスラッシュを"年"に置換   2個目のスラッシュを"月"に置換   2個目のスラッシュの後の文字を1文字ずつ調べて、数値で無くなった時そのひとつ前に"日"を挿入 (文字列終端に達した場合はそこに"日"を付け加える)  4個の場合   1個目のスラッシュを"年"に置換   2個目のスラッシュを"月"に置換   2個目のスラッシュの後の文字を1文字ずつ調べて、数値で無くなった時そのひとつ前に"日"を挿入   3個目のスラッシュを"年"に置換   4個目のスラッシュを"月"に置換   4個目のスラッシュの後の文字を1文字ずつ調べて、数値で無くなった時そのひとつ前に"日"を挿入 (文字列終端に達した場合はそこに"日"を付け加える)   

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 日付でデータを抽出したい

    A列には2007/10/1~2007/10/31と入力されていて B列にはランダムに数字が入っています。 yyyy/m/d~yyyy/m/dまでのB列の平均を求めたいです。 「yyyy/m/d」(検索する日付)は常に変えられるようにしたいです。 オートフィルタのオプションでも出来るのですが 値を求めて別セルに入力したいため それ以外の方法が知りたいです。 A列yyyy/m/dに隣接するB列の値だけなら VLOOKUP関数で求めたい日付をC1に入れて =VLOOKUP(C1,A:B,2)で求められるのですが 「yyyy/m/d~yyyy/m/d」の求め方がわかりません。 よろしくお願いします。

  • SUMIFSに日付を使いたいのですが…

    どなたか助けて下さい。 現在のデータとして複数のシートがあり、年月で纏める為にSUMIFSを使おうと考えております。 1枚目のシートには日付が打ち込んであり、年月日まで入っています。(yyyy/m/d) Sheet1 A                 B 2008/11/29(yyyy/m/d)  30 2008/12/29(yyyy/m/d)  50 2008/12/31(yyyy/m/d)  100 2枚目のシートには年月が入力されてあり、「200812」と数字が入っております。 A       B 200812   ? 最終的には2枚目のBに12月の合計を纏めたいので、1枚目の日付を変更したいのですが 書式設定の表示形式のユーザー定義で「yyyymm」にすると表示は「200812」 ですが、当り前の事ながら、データとしてはそのように反応してくれません。 (合計値として150となるようにしたい) そこで、これをどのように結び付けるのか、また別の方法があればと思い どなたか教えて頂ければ幸甚です。

  • ショートカットキーで日付入力時の書式設定法 excel

    EXCELでは""Ctrl""+"";"" で現在の日付が [yyyy/m/d]形式にて簡単に入力可能です。 この際の書式を変更したいです。現状、西暦が4桁も場所をとり、文字列としてもっと短くしたいのです。 当サイト内で”日付 ショートカット、EXCEL、 書式”などの単語で検索してみましたが、なかったです。またエクセルのツール>オプションのダイアログも見ましたが、不明でした。なるべくマクロを使わない方法で探しています。宜しくお願いします。

  • Excel日付 0M/0D/YYYY

    Excel2003です。 SAPからデータを持ってくるとSAPの設定上、1~9月、1日~9日が0M/0D/YYYYで入ってきて、これをYYYY/MM/DDまたはYYYY/M/Dの書式に変更することが出来ません。 これはどうにかならないのでしょうか? 関数で何とかなりますか?

  • excelのvbaを使って日付を置換したいのです

    こんにちは。いつも質問ばかりですみません。 今、excell の VBAの勉強をしているのですが、たとえば、B列に2004/5/3 とか、2004/5/5とか、5月の日付ばかりはいっていたとして、その2004/5の部分を2004/6に置換したいとします。 それを、マクロでやらせてみて、VBAを見ると Sub Macro9() Cells.Replace What:="2004/5", Replacement:="2004/6", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub のようになるのですが、このプロシージャーを実行しても、うまく置換できません。 どのように記述したら、できるのか、教えていただけるとうれしいです。 よろしくお願いいたします。

  • アクセスで日付の書式が書き直されます。

    Access97での書式で日付についてお尋ねします。 テキストボックスの書式で、 yyyy\年mm\月d\週 と入力すると、強制的に yyyy"年"mm"月"d"週" となってしまい、表示も本来 2007年08月1週 となるところ、 2007mm月d週 と成ってしまいます。 このファイルをAccess2002で開くと、 yyyy\年mm\月d\週 のままです。 Access97の設定に寄るもではないかと思うのですが、分かりません。 どなたか、ご存じの方がいらっしゃれば、ご教授の程、お願いいたします。

  • EXCEL 日付表示について

    EXCELのセルに「2009/3/1 16:15」と表示されています。 (実際には「2009/3/1 16:15:00」と入力し、セルの書式設定のユーザー定義で「yyyy/m/d h:mm」と設定しています。) このセルの「2009/3/1」だけ抜き出したいと思っていますが関数など、いい方法はないでしょうか。 実は、このセルの列には他に「2009/3/1 11:51:03」のようなセルがありまして、ピボットテーブルで日付別件数を出したいと考えています。 よろしくお願いいたします。

  • VBA:日付をシリアル値にできるの関数教えてください。

    VBAにより、あるセルに"yyyy / mm / dd hh:mm:ss"のフォーマットで日付を記入しました。それを手動で書式を標準にすると例えばシリアル値38148.4768981481になります。これをVBA上でできる関数を知りたいです。つまり、日付をシリアル値にできるVBAの関数を教えて頂きたいです。宜しくお願いいたします。

  • Excel VBAでの日付検索について

    Excel VBAでの日付検索について Excelに下記のように1時間おきの日時(A列)と値(B列)が数か月分入力されています。 UserFormで入力された月の、日別の合計した値を別ブックに出力したいと思っています。 A列の日時は、セルの書式設定でユーザ定義の「yyyy/m/d hh:mm」となっています。 例)UserFormで8月と入力されたら、8/1の0:00~23:00の値(B列)を合計し、別ブックへ出力し、それを月末(8/31)分まで繰り返し計算し出力したい。 A            B 2010/8/1 0:00       345.5 2010/8/1 1:00       309.4 2010/8/1 2:00       364.2 :       : :       : :       : 2010/8/1 23:00       359.0 2010/8/2 0:00       339.9 2010/8/2 1:00       357.3 現在、下記のようなVBAにして、UserFormで入力された月の1日のデータが入力されている行番号を取得 しようとしているのですが、うまく検索されません。 どなたかご教授下さい。 Dim Obj As Object Dim HitRow As Long Dim Cerday As Long Dim myDay As Date myDay=txt_年.Value & "/" & txt_月.Value & "/1" Cerday=DateValue(myDate) Set Obj=Worksheets("sheet1").Cells.Find(Cerday,LookAt:=xlwhole) If Obj Is Nothing Then MsgBox "見つかりません。" Else HitRow=Worksheets("sheet1").Cells.Find(Cerday,LookAt:=xlwhole).Row End If

  • エクセル 日付、数字の入力方法

    エクセル2002を使用 ○日付の入力方法 2009/09/04と入力したい。0が消える。 セルの書式設定、ユーザー定義でYYYY”年”m”月”d”日”でも0が消える。’で文字化はしたくない。 ○数字の入力 数字の前に0がある 例:000012340 これも当然数字の前の0が消える。’で文字化はしたくない。 どのようにセルの書式設定をすればよろしいでしょうか?

専門家に質問してみよう