
No.5ベストアンサー
- 回答日時:
列が増えた場合の対応は行っていません。
(行えません)列が増えて、その列が20か50の必須項目になる場合は、マクロを修正する必要があります。
Option Explicit
Public Sub 必須項目チェック()
Dim maxrow As Long '最大行
Dim wrow As Long '行番号
Dim ws As Worksheet '本シート
Dim cnt As Long '件数カウンター
Set ws = ActiveSheet
maxrow = ws.Cells(Rows.Count, "F").End(xlUp).Row 'F列の最大行取得
If maxrow < 3 Then Exit Sub
ws.Range("B3:E" & maxrow).Interior.Pattern = xlNone
For wrow = 3 To maxrow
If ws.Cells(wrow, "F").Value = 20 Then
Call hantei(ws.Range("C" & wrow), cnt)
Call hantei(ws.Range("E" & wrow), cnt)
End If
If ws.Cells(wrow, "F").Value = 50 Then
Call hantei(ws.Range("B" & wrow), cnt)
Call hantei(ws.Range("D" & wrow), cnt)
End If
Next
If cnt = 0 Then
MsgBox ("チェック完了")
Else
MsgBox ("必須項目データなし=" & cnt & "件")
End If
End Sub
Private Sub hantei(rng As Range, cnt As Long)
If rng.Value = "" Then
rng.Interior.Color = 49407 'オレンジ
cnt = cnt + 1
End If
End Sub
No.4
- 回答日時:
>こちらにメッセージ警告アラートは付けられますか。
。。付けるのは可能ですが、質問者さん自身が欲する仕様が不明です。
例えばセルの色が変わったアドレスを一気に表示させたいのか?
⇒この場合セルの色が変化しているので警告が必要なの?とも思えますし、何より色を消すために再度実行する必要があります。
ならVBAより条件付き書式を用いた方がリアルタイムに色を変更できるので、視認性は良いと私は思います。
またセルの色を変え警告を出すよりも、必要な入力がされてないとInput関数やメソッドにより該当セルを選択し入力を促せば、セルの色を変更する必要はないと思います。
⇒その該当セルの量によっては一旦セル色を変え、どこがまずいのかを知る方がやりやすいのかもですが。
その辺の求める仕様次第であり、ここについてはご指名の方が既に対応していると思って省きました。
取り敢えず追加要求が出ているようですから、それに補足してあげては如何でしょうか?
⇒dポイントに興味ないのでBAを狙うつもりは私にはありませんし。
あと特定の回答者名を質問文に載せるのは、知恵袋でも一時期あった【回答リクエスト】の廃止にあるよう【自作自演を疑われる】事に成りかねないので控えた方が宜しいかと。
No.3
- 回答日時:
画像のみで判断したコード。
Sub test()
Dim r As Range
For Each r In Range("F3", Cells(Rows.Count, "F").End(xlUp)).Offset(, -4)
With r
Select Case .Range("E1").Value
Case 20
.Range("B1").Interior.ColorIndex = IIf(.Range("B1").Value = "", 6, 0)
.Range("D1").Interior.ColorIndex = IIf(.Range("D1").Value = "", 6, 0)
Case 50
.Range("A1").Interior.ColorIndex = IIf(.Range("A1").Value = "", 6, 0)
.Range("C1").Interior.ColorIndex = IIf(.Range("C1").Value = "", 6, 0)
End Select
End With
Next
End Sub
No.2
- 回答日時:
>決め打ちとはどのようなことでしょうか、、
マクロ内で20又は50に対応する列を決めて持つということです。
(ハードコーディングともいいます)
20ならば、BBB,DDD列が空白か否かをみる。
50ならば、AAA,CCC列が空白な否かをみる。
上記のようにすることは可能です。
現在はFFFは、空白は無視することになっています。
今後、GGG、HHH、IIIなどが追加されても、その列の空白は無視して良いのでしょうか。
そうであれば、最終列を求める必要はありません。(B列~E列だけみれば良いので)
EEE(F列)の最終行のみを求めれば済みます。
上記の仕様で問題なければ、そのようにすることは可能です。
No.1
- 回答日時:
EEEが20の時、C列(BBB)とE列(DDD)の値が空欄かどうかをみるということですが、EEEが20の時、C列とE列を参照するということは、決め打ちで良いのですか?
どのようにして、C列とE列にたどり着けば良いのでしょうか。
(前回は2行目にその情報がありましたが、今回はありません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロについて教えてください、、 5 2023/06/06 22:07
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Listviewのデータを上から順番...
-
VBAでページ番号、ページ最終行...
-
品質の予備データで何がわかる...
-
MSFlexGridのデータ表示位置の設定
-
DataGridViewで表示に制限をつ...
-
【ASP.NET MVC】一覧編集画面
-
マクロについて(tatsumaru77さ...
-
データリカバリーについて ファ...
-
VBSやVBAでXMLファイルを読み込...
-
EXCEL2000のマクロ(ADO)にてCSV...
-
GoogleスプレッドシートからExc...
-
GASでスプレッドシートの一番上...
-
【Excel VBA】先頭の「0」飛び...
-
XMLについて
-
コード側からDataGridの列を追...
-
エクセルマクロ小数点桁数
-
DataGrdViewに関連付けたデータ...
-
3桁または4桁の数値を時刻に...
-
Excel2013,2016 マクロの動作が...
-
【VBA】指定したセルと同じ値で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
Listviewのデータを上から順番...
-
VBAでページ番号、ページ最終行...
-
.NET SqlDataReader のレコー...
-
GASでスプレッドシートの一番上...
-
MSFlexGridのデータ表示位置の設定
-
DataGridViewで表示に制限をつ...
-
GridViewにバインドせずにデー...
-
ACCESSのVBAで[Split]について
-
コンパイルエラーSubまたは...
-
VBによる可変長ファイルの読み書き
-
VBA ピボットテーブル自動更新
-
VB6 → EXCEL にデーター出力
-
【ASP.NET MVC】一覧編集画面
-
通貨表示??3桁区切りでカン...
-
1台のサーバへの同一セグメント...
-
ASP C# データベースから1行取得
-
クラス内だけでhtmlデータをダ...
-
GoogleスプレッドシートからExc...
おすすめ情報
決め打ちとはどのようなことでしょうか、、
1行ずつ見ていって
3行目の場合、
EEEが20の時括かつBBBには空かどうか
EEEが20の時括かつDDDには空かどうか
というような感じにできますでしょうか。
ありがとうございます。
こちらにメッセージ警告アラートは付けられますか。。。