• ベストアンサー

Excelでの置換

noname#420の回答

noname#420
noname#420
回答No.6

日付の表示形式ですと今後の置換も大変ですので、 一度現状態を文字列に置き換えたほうが良いと思います。 そのVBAを下記に示します。 Sub Macro() Dim c As Range '現選択中シート内のセル指定範囲において For Each c In ActiveSheet.Range("A1:A368") 'セル書式設定が日付型「平成 年 月 日」ならば、 If c.NumberFormatLocal = "ggge""年""m""月""d""日""" Then 'A_単なる文字列へ変換 '←「ココ」 c.Value = Format(c.Value, "ggge""年""m""月""d""日""")'←「ココ」 End If Next End Sub Range("A1:A368")ではA1からA368のセル範囲を指定して日付を文字列へ変換しています。ご自身でここは書き換えて使用してください。 現状を文字列に置換後、標準機能の文字列置換で平成13年にすればよいと思いますが、その際、平成12年2月29日にご注意ください。 ちなみに1年加算して文字列へ置き換えるのは上記 [←「ココ」]行を下記Bの行と置き換えます。(365を足しても良いですが、その場合閏年の判定等わずらわしくなります。) 'B 1年加算して文字列へ c.Value = Format(DateAdd("yyyy", 1, c.Value), "ggge""年""m""月""d""日""") また、1年加算して日付のままにしておくのは下記Cの行と置き換えます。 'C 1年加算して日付へ c.Value = DateAdd("yyyy", 1, c.Value) マクロの実行方法等はヘルプ等をみて勉強なさって下さい

noname#211914
質問者

お礼

お礼が遅くなり申し訳ありません。 VBAの丁寧な解説有難うございました。 もう少し勉強してからあらためて質問致しますので、今後ともよろしくお願いします。

関連するQ&A

  • エクセルでの置換について

    エクセルでの置換について教えてください。 あるセルの中に「昭和20年4月10日」というように書かれているものを「平成20年4月10日」と直したいのですが置換では出来ませんでした。 なにか、やりかたが違うのでしょうか?

  • エクセルの置換について

    エクセルの置換について エクセル2000を使っています。 1シート内に日付(10/1、10/2・・・)が複数セルに入力されています。 このシート内のセルを毎月更新(10/3→10/31、10/4→11/1、10/5→11/2と一定周期で変更)するのですが、ひとつずつのセルに直接入力変換していくと時間が掛かる為、現状は(これも面倒ですが)置換機能で1日ずつ“すべて置換”で更新しています。 ですが、例えば11/1→11/29という置換をすると、先に打ち込んだ11/1を含むセル(11/11、11/13など)全てが置換されてしまうため、“完全に同一なセルだけを検索する”にチェックし、すべて置換をするのですが、『置換対象となる一致するデータが見つかりません。検索範囲にそのデータがないか、または条件に一致するレコードがありません。』というエラーメッセージが出てしまい、置換ができません。 11/1のように(/1)が入力されたセルだけを指定して、別の日付に全て置換する方法はどうすれば良いですか? 宜しくお願いします。

  • エクセルのシート名の参照

    エクセルでブック1とブック2があり、それぞれ日付別に1~31のシートがあります。 ブック1は日報のような内容となっており、ブック2でブック1のデータを参照して、計算をしております。 ブック2の計算式が月ごとに変わるのですが、ブック2のシート1に数式を入力し2~31にコピー&ペーストし、置換を使用して参照シート名を1から2~31へと置換しているのですが、間違いや変更のたびにやりなおしとなり、かなり手間となっています。 何か良い方法は無いでしょうか? 分かりにくくてすいません。

  • Excelの日付をコピーし、貼り付けると1日ずれます

    Excelに入っている日付データをコピーし、別のファイル、又は別のシートのセルに貼り付けると、不思議なことに、日付が1日ずれた形でコピーされてしまいます。 例えば 2005.9.22 10:00:00 と入っているセルをコピーし、貼り付けると 2005.9.23 10:00:00 と貼り付けられてしまうのです。 但し、これが同じシート内の場合は同じ日付でペーストされます。 どうやっても1日ずれてしまうので、困っています。 どうすれば同じ日付が貼り付けられるでしょうか?

  • エクセルの操作

    エクセルで日付を入力する方法(連続で) 1シート1日の日付を 2つ目のシートに翌日の日付を続けて入力したいのですが。(たとえば1つ目のシート平成20年4月1日 2つ目のシート平成20年4月2日と・・・)365日分作りたいので1日1日入力するのはかなり面倒くさいのでなにかよい方法はないでしょうか。 1シート内だと日付を入力してセルをドラッグすると連続した日付が入力されるのはわかるのですがシートにまたがってやる方法がわかりません。教えてください。 ちなみに日報を作っています。

  • エクセルで日毎のデータの蓄積

    シートBにその日のデータを入力し、そのデータをシートAに蓄積していきたいです。 手作業ならば、 1.入力されたシートBのその日のデータをコピー 2.シートAの同じ日付の行を探し、値のみペースト とするのでしょうが、これを自動化したいです。 セル参照だと、毎日、同じ行にデータが上書きされていくため 無理っぽいし、マクロを使わないとできませんか? コピーとペーストはできそうですけど、「同じ日付の行を探し」というところが難しそうだなぁと思いました。。。 すみませんが、よろしくお願いします。 シートA(データ蓄積用) 日付   データ 12/1   データ1 12/2 ・ ・ 12/31 シートB(データ入力用) 日付   データ 12/2   データ2 ↑日付が変われば、同じ行にデータを上書き

  • エクセル置換機能について

    いつもお世話になっております。 さっそく質問ですが、EXCEL 2003にて例えば「.9/7」と入力されているセルを「9/7」と一括で置換するにはどうしたら良いでしょうか? 因みに、「.9/7」とは9月7日と言う意味の日付が入力されている訳ですがその日付が入力されたセルは例えば「.9/3」、「.9/11」などたくさんあります。それら日付の前に入力されている.(ピリオド)を一括で取り除きたいのです。 説明の仕方が下手で申し訳ありませんが、何卒よろしくお願い致します。

  • エクセルシートで週間予定表を作っているのですが・・・

    最初に基本となるひとつのシートがあるのですが・・・ そのシートの右上にNo.1の表示 適当なところに、 自・平成○年○月○日の記入欄 至・平成△年△月△日の記入欄 自の日付を読み取って別箇所に日にちと曜日が飛んでいくようになっております。 そのシートを「移動またはコピー」で新しいシート(基本のシートの横に2番目のシート)を作りたいのです。 その際に、コピーしたシートの右上がNo.2になり、日付も次の週のものに自動に変わるようにしたいのです。 同様に、3枚目4枚めと増やして行きたいのです。 どうぞやり方を教えて頂きたくお願い致します。 (XP・オフィス2002です)

  • エクセルで各シートに日付・曜日一括表示するには

    (1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。 (2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。 このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか? 昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。

  • Excelにて日付と曜日を自動的に表示できるように…

    ひと月につきひとつのファイル(Excel)で、 その中に1日1枚記入するワークシートが1か月分…つまり1から31まであります。 その1枚ずつに日付と曜日を入れるセルがそれぞれあります。 毎月、前月のファイルをコピーして使用するのですが、 そのため入力する度に日付と曜日を変えています。 これを自動的に表示させる方法はないでしょうか? 例えば10月のファイルなら、 12という名前のワークシートは日付が2005/10/12で曜日が(水)と表示されるような… もし何か名案があればよろしくお願いします。