プロが教えるわが家の防犯対策術!

下記のマクロは以前教えて頂いたマクロを少しアレンジして設定しております。
マクロを実行すると、ダイアログが開き、指定フォルダに指定セル値名でマクロ有効ブックで保存できます。
保存後に、元のマクロ有効ブックが閉じるようになっております。
マクロ実行前のファイルもマクロ有効ブックです(マクロ有効テンプレートではありません)
しかし、マクロを実行すると、画像のようなエラーメッセージが表示され、
コードの「For i = 0 To UBound(List)」部分が黄色くなっております。
この問題の解決方法を教えて
現状のマクロ
Sub 昇降機青紙保存()
Dim alert As VbMsgBoxResult
alert = MsgBox("【青紙】保存を行いますか?", vbYesNo + vbQuestion, "【青紙】保存確認")
If alert <> vbYes Then
Exit Sub
End If

On Error Resume Next
Application.DisplayAlerts = False
Dim vDeleteSheet As Variant
On Error GoTo 0
Application.ScreenUpdating = False
Const folder As String = "\\nas-sp01\share\確認部\電子申請 関連\1.受付\1.確認申請\"
Dim newName As Variant
Dim initName As String
initName = folder & Range("CQ1").Value
newName = Application.GetSaveAsFilename(InitialFileName:=initName, FileFilter:="Excel マクロ有効ブック(*.xlsm), *.xlsm")
If newName = False Then Exit Sub
Dim ws As Worksheet
Dim TargetCheck As String
Dim List As Variant
Dim i As Long
Dim Chk As Boolean

For Each ws In Worksheets
Chk = False
If ws.Visible = False Then
For i = 0 To UBound(List)
If ws.Name = List(i) Then
Chk = True
Exit For
End If
Next i
If Chk = False Then
TargetCheck = TargetCheck & ws.Name & vbCrLf
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
End If
Next ws
ThisWorkbook.SaveAs newName, xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = True
Application.Quit
With ThisWorkbook
.Saved = True
.Close False
End With
End Sub
以上となります。
よろしくお願いいたします。

「エクセルのマクロについて教えてください。」の質問画像

A 回答 (2件)

こんばんは



>以前教えて頂いたマクロを少しアレンジして設定しております。
元のものが動作していたのなら、変更した部分が悪いのではないでしょうか?

>「For i = 0 To UBound(List)」部分が黄色くなっております。
Listを検索してみればわかるかと。

>Dim List As Variant
>For i = 0 To UBound(List)
>If ws.Name = List(i) Then
の3箇所だけなので、何の設定もされていない変数を配列として扱おうとしているので、エラーになっているだけでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
確認してみます

お礼日時:2024/03/26 19:53

UBoundは、配列名Listの添え字の最大値を返す関数。


例えば、Listが要素10個の配列なら、UBound(List)は10を返す。

ソースを見ると、配列宣言してるけど、中にセットする様な実行文が無い。
だから、UBound(List)は0では無くNULL(FALSE)を返してるわけ。
当然、整数でも無いのだから、「型が違うよ」と言ってる。

修正方法は解りません。
Listが何なのか、これを見ても解らないからね。

多分、対象とするファイル名(ブック名)を最初に複数セットして置くんじゃ無いですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます
確認してみます

お礼日時:2024/03/26 20:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A