![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセル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を見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
EXCELのVBAでRange(A1:C4")を変数にする方法を教え"
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
-
4
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
エクセルの一つのセルに複数の...
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excel 例A(1+9) のように番地の...
-
セルをクリック⇒そのセルに入力...
-
セルの高さ(行高)を求めるには?
-
複数のセルのいずれかに数字が...
-
エクセルで住所と建物名を分け...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
(Excel)数字記入セルの数値の後...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
数式を残したまま、別のセルに...
-
excelの特定のセルの隣のセル指...
-
Excelでのコメント表示位置
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセル 足して割る
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
EXCEL VBA セルに既に入...
-
【Excel】 セルの色での判断は...
-
(Excel)数字記入セルの数値の後...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
excelのCOUNTIF関数で、『範囲=...
-
Excel2003 の『コメント』の編...
-
枠に収まらない文字を非表示に...
-
Excelで住所を2つ(町名迄と番...
-
複数のセルのいずれかに数字が...
おすすめ情報