excel初心者です。VBAはほとんど使った事がありません。現在使用しておりますのはexcel2002です。
今回教えて頂きたいのは、任意の日付の入ったデータの日の部分のみ同じ数字に置換する方法です。
(例)
2003/09/15
2006/10/28
2004/06/07
となっているデータを
2003/09/25
2006/10/25
2004/06/25
としたいのです。
教えてgoo内を検索してみましたが該当するものを探しあてる事ができず質問させて頂きました。
初心者ですので出来れば簡潔な方法を希望致します。
お分かりになる方いらっしゃいましたら、宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
#1の方の方法は表示上だけで、値そのものは変化しません。
これを使って計算、例えば45日後を求める、などの場合は工夫が必要です。表示上だけでよい場合は、簡易でいいアイディアだと思います。値そのものを置換したい場合、作業列を使って関数式で
=DATE(YEAR(A),MONTH(A1),25)
で求めることができます。
VBAでなら日付セルを選択した状態で、下記マクロを実行して下さい。日付のみを一括で変換します。
【手順】
1. [Alt]+[F11]でVisual Basic Editor起動(以下VBE)
2. VBE画面で[挿入]-[標準モジュール]クリック
3. 2.で開いたウインドウに下記VBAコードをコピー&ペースト
4. VBEを閉じる
5. [ツール]-[マクロ]-[マクロ]で実行
【以下VBAコード:場所=標準モジュール】(次行から終わりまで)
Sub 日付置換サンプル()
Dim rngCurrent As Range
Application.ScreenUpdating = False
For Each rngCurrent In Selection
If VarType(rngCurrent) = vbDate Then
With rngCurrent
.Value = DateSerial(Year(.Value), Month(.Value), 25)
.NumberFormat = "yyyy/mm/dd"
End With
End If
Next rngCurrent
End Sub
この回答への補足
ご回答有難うございます。
DATE関数で出来ました。
VBAのやり方も、とてもわかりやすく説明して頂き有難く思います。ただ、やってみたところ、次のようなエラーが出てしまいました。
「このブックにあるマクロは、セキュリティレベルが高に設定されており、デジタル署名されていないかまたは安全なものとして確認されていないため利用できません。マクロを実行するには、署名するか、またはセキュリティレベルを変更する必要があります。」
今回はDATE関数でやろうと思うのですが、もしよろしければ、VBAのエラー解除の方法を教えて下さい。
宜しくお願い致します。
No.3
- 回答日時:
元データの年月の部分は変更せずに、日付をすべて25に変更したいということでいいでしょうか。
日数計算などせず、見た目だけの変更でよいのでしたらNo.1 の方の方法が簡単だと思います。
データを変更する必要あるのでしたら、関数を試してください。
元データの右に1列追加して下記のような計算式を入力します。
(元データがA1にある場合)
=DATE(YEAR(A1),MONTH(A1),25)
DATE関数は year(年,月,日) と指定することで( )内の日付データに変換してくれるものです。
Year Month はそれぞれ日付データから該当部分の数字を抜き出します。
上記のような計算式を入力して、データ分だけコピーして下さい。
尚、これは計算式なので、元データを削除するとエラーになります。
元データが不要な場合は、計算式を指定した列を選択してコピーし、同じ場所に[編集]-[形式を選択して貼り付け]コマンドで「値」として貼り付けて下さい。
ご回答有難うございます。
DATE関数でやったところ、思ったように変更できました。元データを削除した場合の対策まで丁寧にご指導頂き感謝致します。
本当に有難うございました。
No.1
- 回答日時:
置換ではなく、表示上単純に日付を揃える方法です。
セルの書式で「ユーザー定義」にし書式を
yyyy/mm/"25"
とします。
すると、入力された年月から、年(yyyy)と月(mm)、そして日は取得せず、代わりに指定した「25」と表示されます。
早速の回答有難うございます。
こんなに早く回答を頂けると思ってもいなかったので感激です。
上記やってみました。できました!
ただ、表示だけでなく値も変更したいので、他の方にご提案頂いたDATE関数を使用することに致します。
本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
- その他(Microsoft Office) ExcelデータをPDFにして保存するとWordデータに変換されるようになった 10 2023/06/20 09:03
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) エクセル 住所間の通勤時間 4 2023/02/11 22:30
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
VBAでの日付の置換方法を教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複するIDのデータを1行にま...
-
今日の日付が入った行のデータ...
-
excel 日付のみ置換したいのです
-
excelマクロで意図通りのソート...
-
yyyy/M/dをyyyy/MM/ddに変換
-
SQLite3のtext→date変換について
-
SQL*Plusの終了はquit?exit?
-
Accessのマクロでモジュールを...
-
PL/SQLカーソルの2重FORループ...
-
callで順に実行されるプロシー...
-
エクセルVBAでUserFormを起動し...
-
VBA プロシージャの名前の取得
-
キャッシュを使わずにSELECTを...
-
Statement ignored というエラー
-
Texの枠囲み調節
-
Excel VBAで「プログラム実行」...
-
ACCESS、時間ごとの集計の仕方は?
-
アクセス 意図せずサブプロシー...
-
to_date使用時に発生するエラー...
-
VB.NET Type.GetFieldsメソッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLサーバで和暦から西暦に変換...
-
Accessの数値から時間に変換す...
-
今日の日付が入った行のデータ...
-
SQLで部分的にGROUP BYしたいとき
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
重複するIDのデータを1行にま...
-
日付の切り出し方法について
-
テーブルの主キーをdate型...
-
WHERE句にて「30日前から今日ま...
-
oracle 文字列 01:45 を時間に...
-
OSのシステム日付を変更して...
-
Excelグラフの日付軸の日付がず...
-
日付型なら変数の先頭になん...
-
指定した年月までのデータを取...
-
wordの差し込み印刷での日付表示
-
エクセル 日付による並べ替え...
-
エクセルVBA 今日の日付行...
-
日数算出SQL
-
DB2のSQL(日付)について
-
yyyy/M/dをyyyy/MM/ddに変換
おすすめ情報