Excelで、特定の未入力セルがあると、Excelを閉じられない、かつ保存できないようにマクロで設定しました。(過去の質問で似たようなものがあったので、コピペしました)
メッセージボックスに未入力セルがあることを表示させているのですが、そのセル名を指定した名前で表示させたいです。自分なりに調べてみましたが、なかなか見つからず、皆様からのアドバイスを頂きたいです。
例えば日付を入れるセル、B1が未入力の場合、
「B1」が未入力です。
ではなく、
「日付」が未入力です。
と表示させたいです。
現在、以下のような形でVBA画面に入力しています。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim k As Long
Dim str, buf As String
Dim myArray As Variant
myArray = Array("営業担当者名", "顧客名", "荷造運賃単価", "見積日", "確度") '←好みの数だけセル番地を格納する
For k = 0 To UBound(myArray)
If Worksheets("見積書兼注文通知書").Range(myArray(k)) = "" Then
str = WorksheetFunction.Substitute(Range(myArray(k)).Address, "$", "")
M = M + 1
buf = buf & str & ","
End If
Next k
If M > 0 Then
MsgBox "未入力の箇所があります。" & vbCrLf & Left(buf, Len(buf) - 1) & "セルが" & vbCrLf & "未入力です。"
Worksheets("見積書兼注文通知書").Activate
Cancel = True
End If
End Sub '
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'この行から
Dim k As Long
Dim str, buf As String
Dim myArray As Variant
myArray = Array("営業担当者名", "顧客名", "荷造運賃単価", "見積日", "確度") '←好みの数だけセル番地を格納する
For k = 0 To UBound(myArray)
If Worksheets("見積書兼注文通知書").Range(myArray(k)) = "" Then
str = WorksheetFunction.Substitute(Range(myArray(k)).Address, "$", "")
M = M + 1
buf = buf & str & ","
End If
Next k
If M > 0 Then
MsgBox "未入力の箇所があります。" & vbCrLf & Left(buf, Len(buf) - 1) & "セルが" & vbCrLf & "未入力です。"
Worksheets("見積書兼注文通知書").Activate
Cancel = True
End If
End Sub
以上。
どこに、どのような文言を入れると私の行いことが実現出来るか教えていただきたいです。
宜しくお願いいたします。
No.2
- 回答日時:
直接の回答ではありません。
項目の表示など雰囲気が判ればどうでも良く、そのセルを選択状態にしてメッセージボックスを閉じれば入力も楽だと思うのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
指定文字の間に
-
エクセルで既に入力してある文...
-
EXCELのセル上のURLを...
-
IF関数で0より大きい数値が入力...
-
入力したところまでを自動的に...
-
excel で二つのどちらかを選ぶ
-
事務系、営業系の人に質問です...
-
参照先セルに値が入っていない...
-
Excel:文字と数字の組合せ、次...
-
Excelでセルに入力されたカラー...
-
Excel書式設定が24時間以上の設...
-
【Excel・並べ替え】かな、アル...
-
値を入力後、自動的にアクティ...
-
エクセルで時間の合計
-
エクセルで10分ごとの時刻の...
-
エクセルで、数値を月として認...
-
エクセルで時間の判定をしてい...
-
スプレッドシートで 時間入力の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
エクセルで既に入力してある文...
-
Excel:文字と数字の組合せ、次...
-
空白でないセルの値を返す方法...
-
値を入力後、自動的にアクティ...
-
エクセルで時間の判定をしてい...
-
yyyy/mm/ddからyyyy/mmへの変換
-
Excelでセルに入力されたカラー...
-
エクセルの数式がかぶって、選...
-
エクセルで、特定のセルの内容...
-
エクセルで複数の条件で掛け算...
-
マイナス同士の前年比
-
入力したところまでを自動的に...
-
EXCELのセル上のURLを...
-
excel 関数にて文字を0として認...
-
バーコードが読み取れない原因...
-
ExcelVBAでセルを編集状態にす...
おすすめ情報