Sub setData()
Dim hitCol As Long
Dim i As Long, j As Long
Dim errDays() As Long, errCnt As Long
'入力データチェック
If Not chkData Then End
Application.ScreenUpdating = False
'データ登録
With Sheets(strSheet)
For i = 1 To 5
If days(i) <> 0 Then
Err.Clear
hitCol = WorksheetFunction.Match(days(i), .Rows(7), 0)
If Err.Number = 0 Then
For j = 1 To 27
'組立・行程
.Cells(hitRow + j, hitCol).Value = Cells(j + 9, i * 2 + 2).Value
Next j
.Cells(hitRow + 30, hitCol).Value = Cells(39, i * 2 + 2).Value '生産数
.Cells(hitRow + 32, hitCol).Value = Cells(40, i * 2 + 2).Value '作業工数
.Cells(hitRow + 33, hitCol).Value = Cells(41, i * 2 + 2).Value 'ケース数
Else
errCnt = errCnt + 1
ReDim Preserve errDays(errCnt)
errDays(errCnt) = i
End If
End If
Next i
End With
ThisWorkbook.Save
If errCnt = 0 Then
Application.ScreenUpdating = True
MsgBox "データを[" & strSheet & "]シートにセットしました。", vbInformation
Else
For i = 1 To errCnt
Cells(8, errDays(i) * 2 + 2).Interior.Color = vbYellow
Next i
Application.ScreenUpdating = True
MsgBox "[" & strSheet & "]シートに該当する日が無かったため、データをセットできませんでした。" & vbCrLf & "シートを確認してください。", vbExclamation
End If
Sheets(strSheet).Activate
Application.GoTo Cells(hitRow, "C"), True
End Sub
のようなコードがあります。
セルC19、C20、D30、D31のデータはセットしないようにしたいのですがどうしてもわかりません。
教えて頂けないでしょうか。お願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは
かなりの変数がグローバルになっているようですし、シートののレイアウトや意味も不明なので、一部のコードだけ示されても・・
・・と言う感じですが、どうしてもこのままで無理矢理やりたいのなら、値をセットする際のアドレスが、『C19、C20、D30、D31』だったらセットしない、と言う処理にするしかないのでは?
(もしかすして、セットする方のセルではなく、参照する方のセルのことを言っているのならチェックするアドレスが逆になりますが・・)
とりあえず、上記の推測が当たっているとしてよいのなら・・
値をセットする可能性があるのは、セル位置からして
>.Cells(hitRow + j, hitCol).Value = Cells(j + 9, i * 2 + 2).Value
>.Cells(hitRow + 30, hitCol).Value = Cells(39, i * 2 + 2).Value '生産数
のどちらかになると推測しますので、値をセットする前に
hitRow + j、 hitRow + 30、 hitCol が、それぞれ「ご指定のアドレスでなければ値をセット、指定のアドレスなら何もしない」と言う条件を加えればご希望のようにはなると思います。
(hitRow>1が保証されている場合は、後の方の処理は対象外にできます)
※ 実際の処理内容や意味合いがわかれば、もっと効果的な方法があるものと思いますけれど、部分的なコードしかないのでこのような意味不明の対処法になってしまいます。
No.2
- 回答日時:
不明点1:データをセットしないようにしたいセル(C19、C20、D30、D31)は
転記元のセルでしょうか、それとも、転記先のセルでしょうか。
不明点2:データをセットしないようにしたいセルは(C19、C20、D30、D31)は、下記のどの項目でしょうか。
①組立・行程
②生産数
③作業工数
④ケース数
上記の不明点が明確になれば、修正用のマクロは提供可能です。
但し、外部変数が多いのと、シートのレイアウトが不明なので、こちらで動作確認はできません。従って、参考程度のマクロになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。 1 2024/01/08 16:23
- Excel(エクセル) エクセルマクロでデータ出力の際の条件がうまく機能しません。 2 2023/09/30 13:01
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) A2~I4179列にあるリストを支社名ごとにシートに分けたいです。 各シート名はA列にある支社名とし 3 2023/08/29 16:46
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
楽天RSSからエクセルVBAを使用...
-
EXCELのSheet番号って変更でき...
-
マクロの「SaveAs」でエラーが...
-
Changeイベントで複数セルへの...
-
VBA 空白行に転記する
-
VBAでのピボットテーブルの範囲...
-
ExcelのVBマクロを、バックグラ...
-
マクロ実行後に別シートの残像...
-
GASでチェックボックスを一括of...
-
100万件越えCSVから条件を満た...
-
vba 連続するとうまく作動せず
-
VBA 実行時エラー1004 rangeメ...
-
【Excel VBA】自動メール送信の...
-
VBAを使って複数のシートから抽...
-
Excel2013で切り取り禁止
-
【VBA】特定の条件でセルをコピー
-
VBA シリアル値から月日への変換
-
祝日を除いた月曜から土曜まで...
-
1004RangeクラスのPasteSpecial...
-
エクセル VBA 時系列に横一列に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
Count Ifのセルの範囲指定に変...
-
楽天RSSからエクセルVBAを使用...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
Excel VBA オートフィルターで...
-
VBA別シートの最終行の次行へ転...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
100万件越えCSVから条件を満た...
-
テキストボックスから、複数の...
-
Excel VBAで、散布図のデータ範...
-
グラフマクロで系列を変数にす...
-
Excel2013で切り取り禁止
-
VBA Userformで一部別シートに...
-
ExcelのVBマクロを、バックグラ...
-
Unionでの他のシートの参照につ...
おすすめ情報