
エクセルVBAのことで伺います。
以下の記述は、「D3からQ3までのセルの中で「年」と入ったセルの左横のセルを探し、
その中の値(西暦の年が入っています)を、G4からI100までの範囲に入力される月日
の年として置き換える」といったものなのですが、エラーが出てしまいます。
「実行時エラー424、オブジェクトが必要です。」とのメッセージが表示され、デバックを
クリックすると、「Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1).Select」
が黄色く強調表示されています。
プログラムの記述をどのように修正すれば良いか、どなたかお教えください。
よろしくお願いいたします。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FoundCell As Range
Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1).Select
With Target
If Intersect(Target, Range("G4:I100)) Is Nothing Or Target.Count <> 1 Then Exit Sub
If IsDate(.Value) Then
If Year(.Value) <> FoundCell Then
Application.EnableEvents = False
.Value = DateSerial(FoundCell, Month(.Value), Day(.Value))
Application.EnableEvents = True
End If
End If
End With
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは!
具体的にどんな動きにしたいのか判らないのですが、
コードを拝見して・・・
>Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1).Select
を
>Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1)
に
>.Value = DateSerial(FoundCell, Month(.Value), Day(.Value))
はYearが抜けていますので
>.Value = DateSerial(Year(FoundCell), Month(.Value), Day(.Value))
としたらどうなりますか?m(_ _)m
No.3
- 回答日時:
続けてお邪魔します。
No.1に
>しかし、なぜ「Select」が入っているとダメだったのか、教えていただけないでしょうか。
とありましたので・・・
Selectという動作は単に選択しするだけです。
>Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1)
の部分ですでに FoundCell に Range("D3:Q3")の中の対象セルがセットされています。
どうしてもSelectを使いたい場合は
>Set FoundCell = Range("D3:Q3").Find("年").Offset(0, -1)
>FoundCell.Select
のように2行に分割してやります。
当然
>.Value = DateSerial(FoundCell, Month(.Value), Day(.Value))
も
.>Value = DateSerial(Selection, Month(.Value), Day(.Value))
のように変えなければなりません。
※ Selectを使う場合は FoundCell の宣言は不要で
Private Sub Worksheet_Change(ByVal Target As Range)
Range("D3:Q3").Find("年").Offset(0, -1).Select
With Target
If Intersect(Target, Range("G4:I100")) Is Nothing Or Target.Count <> 1 Then Exit Sub
If IsDate(.Value) Then
If Year(.Value) <> Selection Then
Application.EnableEvents = False
.Value = DateSerial(Selection, Month(.Value), Day(.Value))
Application.EnableEvents = True
End If
End If
End With
End Sub
のようなコードになると思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
枠に収まらない文字を非表示に...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
Excelで数式内の文字色を一部だ...
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
EXCEL VBA セルに既に入...
-
セルをクリック⇒そのセルに入力...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
エクセルの書式設定の表示形式...
-
エクセル セルの中に縦線が入っ...
-
Excelでのコメント表示位置
-
excelの特定のセルの隣のセル指...
-
Excel2010の指マークと白十字マ...
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
エクセル 足して割る
-
Excel 例A(1+9) のように番地の...
-
【Excel】 セルの色での判断は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
連続しないセルから最小値を引...
おすすめ情報