Excel VBA 質問スレッド №1962 (解決済)

条件が合えば実行するコードでエラーが発生します。

投稿者 : たけ     投稿日時 : 2024/07/11(Thu) 10:08:29     OS : Windows 10     EXCEL : Office 365
よろしくお願いいたします。

生産ラインの在庫管理をシート上で出来るよう

在庫管理シートの34~181列内を3列飛ばしで各部品品目の在庫数を表示させています。

10行目は日付列で、生産がある日は指定数量分毎日引き落とされるように

各品目列毎に連続データで数式を入れておりますが、会社指定の休日などは生産が無いため

引き落としをしないように設定したいので、G列に〇が有る行の

全品目の在庫数は一つ上のセルの値と同じにするように以下のコードを作成してみましたが

実行するとエラーが発生してしまいます

「オブジェクト変数またはWithブロック変数が設定されていません。」

修正点のご教授をよろしくお願いいたします。


Sub 休日はスキップ()

Dim tempRng As Range, searchRng As Range
    Set searchRng = Worksheets("在庫管理シート").Range("G:G")

    Set rng = searchRng.Find("〇")

    Set tempRng = rng

        Do While Not rng Is Nothing

    Set rng = searchRng.FindNext(rng)
    
    Dim i As Long
        For i = 34 To 181 Step 3

    With Worksheets("在庫管理シート").Cells(rng.Row, i)

        .Value = .Offset(-1, 0).Value
                 
         Worksheets("在庫管理シート").Cells(rng.Row, 10).Resize(1, 2).Interior.Color = RGB(0, 0, 0)  'BackColorプロパティは使えなかった
  
    End With
    
        Next

        If rng.Address = tempRng.Address Then
    Exit Do
End If
Loop

    End Sub

スポンサーリンク
[返信 1] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : さんこう     投稿日時 : 2024/07/11(Thu) 10:38:03
>在庫管理シートの34~181列内を3列飛ばしで各部品品目の在庫数を表示させています。

「3列飛ばし」なら「Step 4」だと思いますが...


>実行するとエラーが発生してしまいます

試してみましたが、出ませんでした。それっぽく動作するようです。


※余談です。

コードのインデントを正しく付けておくといいでしょう。

<VBA インデント>
https://www.google.com/search?q=VBA+%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88

[返信 2] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : たけ     投稿日時 : 2024/07/11(Thu) 15:21:32
■[返信 1] さんこうさん(2024-07-11 10:38:03)の記事
> >在庫管理シートの34~181列内を3列飛ばしで各部品品目の在庫数を表示させています。

> 「3列飛ばし」なら「Step 4」だと思いますが...


> >実行するとエラーが発生してしまいます

> 試してみましたが、出ませんでした。それっぽく動作するようです。


> ※余談です。

> コードのインデントを正しく付けておくといいでしょう。

> <VBA インデント>
> https://www.google.com/search?q=VBA+%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88

ありがとうございます。

インデントを正しくつけるようにします。

自分も別のシートで試したところ問題なく動作しました。

が、今のシートだとうまくいきません。

もう少し探ってみます。

[返信 3] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : たけ     投稿日時 : 2024/07/11(Thu) 17:22:02
■[返信 2] たけさん(2024-07-11 15:21:32)の記事
> ■[返信 1] さんこうさん(2024-07-11 10:38:03)の記事
> > >在庫管理シートの34~181列内を3列飛ばしで各部品品目の在庫数を表示させています。
> >
> > 「3列飛ばし」なら「Step 4」だと思いますが...
> >
> >
> > >実行するとエラーが発生してしまいます
> >
> > 試してみましたが、出ませんでした。それっぽく動作するようです。
> >
> >
> > ※余談です。
> >
> > コードのインデントを正しく付けておくといいでしょう。
> >
> > <VBA インデント>
> > https://www.google.com/search?q=VBA+%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88
> >
> ありがとうございます。

> インデントを正しくつけるようにします。

> 自分も別のシートで試したところ問題なく動作しました。

> が、今のシートだとうまくいきません。

> もう少し探ってみます。



色々試していますが、このシートだとエラーが発生してしまいます。

何が邪魔しているのかわからない状況です。

試してみるとよいことなどありましたらご教授ください。

[返信 4] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : さんこう     投稿日時 : 2024/07/11(Thu) 23:33:43
>色々試していますが、このシートだとエラーが発生してしまいます。

コードのどの行を実行するときにエラーになるのか確認してみましょう。

ステップ実行してみるとよろしいかと思います。

<VBA ステップ実行>
https://www.google.com/search?q=vba+%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E5%AE%9F%E8%A1%8C

[返信 5] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : たけ     投稿日時 : 2024/07/12(Fri) 08:45:45
■[返信 4] さんこうさん(2024-07-11 23:33:43)の記事
> >色々試していますが、このシートだとエラーが発生してしまいます。

> コードのどの行を実行するときにエラーになるのか確認してみましょう。

> ステップ実行してみるとよろしいかと思います。

> <VBA ステップ実行>
> https://www.google.com/search?q=vba+%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E5%AE%9F%E8%A1%8C


ありがとうございます。

明日以降の実績値を青色にするようにChangeイベントを作成していたのですが、

これを停止させるとうまく動きました。

ほっとしました、いつもありがとうございます。

[返信 6] Re : 条件が合えば実行するコードでエラーが発生します。
投稿者 : たけ     投稿日時 : 2024/07/12(Fri) 15:40:01
解決しました。

ありがとうございます。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-17 09:01:33 )
タイトルとURLをコピーしました