No.3ベストアンサー
- 回答日時:
開始ボタンが、対象となるシートABCではなく、
別なシート(例えば、シートXYZ)上にあるのではありませんか?
そしてまた、提示のコードが、シートモジュールに書いてあるか
標準モジュールに書いてあるかでも違ってきます。
が、それらに関係なく動作させるためには、下記のように、
それぞれのRangeの前にシート名を付加してやります。
'-------------------------------------------------
If Sheets("ABC").Range("D8") = "" _
Or Sheets("ABC").Range("D9") = "" _
Or Sheets("ABC").Range("D10") = "" _
Or Sheets("ABC").Range("D12") = "" Then
'-----------------------------------------------
これではコードが長くなるので、ふつうは、
Withやオブジェクト変数を使ったりしますが。
外しましたらご容赦!
以上。
No.4
- 回答日時:
セルの選択が D8,D9,D10,D12になった場合に実行するなら
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Union(Range("D8:D10"), Range("D12")), _
Target)
If Not r Is Nothing Then
If WorksheetFunction.CountA(Union(Range("D8:D10"), _
Range("D12"))) < 4 Then
MsgBox "入力漏れがあります"
End If
End If
End Sub
といった具合でしょう ・・・
No.2
- 回答日時:
どう言ったタイミングでメッセージを出す・出さないを決めているのでしょうね?
例えば4個のセルの値の長さ(LEN関数)の積を出してみる。
0であればどこかのセルに値がない。
0以外であれば全てのセルに値がある。
とか?
この回答への補足
ご回答頂き、有難うございます。
メッセージ表示のタイミングは、処理開始のボタンを押したときで、
現在は、下記のようにしてみましたが、各セルに値が入力されていても、処理がストップしてメッセージ表示がされます。
D8~D10には、「H○○年」と入力され、D12には参照するファイルの存在場所のパスがフルパスで入力されます。
D12の例:C:\Documents and Settings\abcdef\デスクトップ\データ(改修テスト)現在メッセージボックス表示させようと使用した文↓
If Range("D8") = "" Or Range("D9") = "" Or Range("D10") = "" Or Range("D12") = "" Then
i = MsgBox("入力漏れがあります。入力画面を確認して下さい。", vbOKOnly)
Exit Sub
です。宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) セルの上書き禁止について 5 2022/04/02 10:09
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- Excel(エクセル) 【EXCEL】=セル&セルが上手く表示できない。 7 2022/09/04 21:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
【Excel】指定したセルの名前で...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
VBA コピーして次の値まで貼り...
-
【Excel VBA】指定行以降をクリ...
-
screenupdatingが機能しなくて...
-
EXCELで変数をペーストしたい
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
Excel2003 複数セル1列の入力済...
-
VBA 検索と入力 Excel ブック ...
-
VBAでマクロ実行中はExcelのマ...
-
Excelで指定した日付から過去の...
-
VBA ユーザーフォーム ボタンク...
-
DataGridViewのセル編集完了後...
-
連続する複数のセル値がすべて0...
-
【EXCEL VBA】Range("A:A").Fi...
-
excelのマクロについて教えて下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
TODAY()で設定したセルの日付...
-
Excel vbaで特定の文字以外が入...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報