
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.1ベストアンサー
- 回答日時:
str = WorksheetFunction.Substitute(Range(myArray(k)).Address, "$", "")
を
str = myArray(k)
でいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で0より大きい数値が入力...
-
エクセルでシート全体の数値を...
-
マイナス同士の前年比
-
Excelで同じセルに箇条書きをし...
-
Excel で空欄にも単位 \\や円 ...
-
excel 関数にて文字を0として認...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセルで時間の判定をしてい...
-
参照先セルに値が入っていない...
-
Excel:文字と数字の組合せ、次...
-
【Excel】セル内の時間帯が特定...
-
エクセル:コメントのようなも...
-
エクセルで既に入力してある文...
-
A1セルに入力したら、入力時間...
-
CSV出力で変換されてしまっ...
-
エクセルの数式がかぶって、選...
-
入力したところまでを自動的に...
-
バーコードが読み取れない原因...
-
エクセルでスペース入力セルを...
-
Excelで2つのセルの時刻を1つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
エクセルで既に入力してある文...
-
空白でないセルの値を返す方法...
-
IF関数で0より大きい数値が入力...
-
Excelでセルに入力されたカラー...
-
入力したところまでを自動的に...
-
【エクセル】指定したセルに入...
-
エクセル セルに文字を入力した...
-
Excel:文字と数字の組合せ、次...
-
エクセルで時間の判定をしてい...
-
【Excel】セル内の時間帯が特定...
-
参照先セルに値が入っていない...
-
yyyy/mm/ddからyyyy/mmへの変換
-
excel 関数にて文字を0として認...
-
エクセルで一定の数値を超えた...
-
エクセルの数式がかぶって、選...
-
エクセル:コメントのようなも...
-
Excel 大小比較演算子による「...
-
Excel で空欄にも単位 \\や円 ...
おすすめ情報