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を見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
-
4
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
5
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
-
6
エクセルvbaについて
Visual Basic(VBA)
-
7
VBAのコードを教えてください
Visual Basic(VBA)
-
8
【VBA】エクセルで最後の不要な改行コードを削除するコードについて
Visual Basic(VBA)
-
9
FileCopy時のエラー
Visual Basic(VBA)
-
10
月ごとに作成している日報ファイルを、VBAでコピーし日付ごとのシートにしたい
Visual Basic(VBA)
-
11
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
12
Excel VBA ダブルクリックで入力 複数まとめる
Visual Basic(VBA)
-
13
VBA
Visual Basic(VBA)
-
14
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
15
エクセルファイルのデータ転記について
Visual Basic(VBA)
-
16
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
17
エクセルVBAの配列について
Visual Basic(VBA)
-
18
VBのWPFとはなんでしょうか?
Visual Basic(VBA)
-
19
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
20
csvファイルを列数ごとに分割するExcelマクロが書けずに困っています
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
グラフマクロで系列を変数にす...
-
100万件越えCSVから条件を満た...
-
EXCELのSheet番号って変更でき...
-
Excel VBA オートフィルターで...
-
Excel2013で切り取り禁止
-
Excelで横書き50行の漢字テス...
-
VBAを使って複数のシートから抽...
-
楽天RSSからエクセルVBAを使用...
-
VBA 空白行に転記する
-
エクセル 複数シートの同一セ...
-
マクロ実行後に別シートの残像...
-
アクセスからエクセルへ出力時...
-
テキストボックスから、複数の...
-
月毎に現金出納帳に転記するコ...
-
複数シートの複数列に入力され...
-
Count Ifのセルの範囲指定に変...
-
vba 連続するとうまく作動せず
-
VBA 別ブックからの転記の高速...
-
VB2005でExcelのグラフのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
VBAコードについて
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
VBA別シートの最終行の次行へ転...
-
100万件越えCSVから条件を満た...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
楽天RSSからエクセルVBAを使用...
-
Count Ifのセルの範囲指定に変...
-
Unionでの他のシートの参照につ...
-
Excel2013で切り取り禁止
-
Excel VBA オートフィルターで...
-
VBA 実行時エラー1004 rangeメ...
-
複数シートの複数列に入力され...
-
VBA Userformで一部別シートに...
-
ExcelのVBマクロを、バックグラ...
おすすめ情報