下記のマクロは以前教えて頂いたマクロを少しアレンジして設定しております。
マクロを実行すると、ダイアログが開き、指定フォルダに指定セル値名でマクロ有効ブックで保存できます。
保存後に、元のマクロ有効ブックが閉じるようになっております。
マクロ実行前のファイルもマクロ有効ブックです(マクロ有効テンプレートではありません)
しかし、マクロを実行すると、画像のようなエラーメッセージが表示され、
コードの「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
以上となります。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは
>以前教えて頂いたマクロを少しアレンジして設定しております。
元のものが動作していたのなら、変更した部分が悪いのではないでしょうか?
>「For i = 0 To UBound(List)」部分が黄色くなっております。
Listを検索してみればわかるかと。
>Dim List As Variant
>For i = 0 To UBound(List)
>If ws.Name = List(i) Then
の3箇所だけなので、何の設定もされていない変数を配列として扱おうとしているので、エラーになっているだけでしょう。
No.2
- 回答日時:
UBoundは、配列名Listの添え字の最大値を返す関数。
例えば、Listが要素10個の配列なら、UBound(List)は10を返す。
ソースを見ると、配列宣言してるけど、中にセットする様な実行文が無い。
だから、UBound(List)は0では無くNULL(FALSE)を返してるわけ。
当然、整数でも無いのだから、「型が違うよ」と言ってる。
修正方法は解りません。
Listが何なのか、これを見ても解らないからね。
多分、対象とするファイル名(ブック名)を最初に複数セットして置くんじゃ無いですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/11/08 10:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) マクロについて教えてください。 下記のマクロは以前教えて頂いたマクロです。 マクロを実行すると 指定 6 2024/01/17 17:50
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/01/16 10:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/01/12 16:09
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
VBAのコードを教えてください
Visual Basic(VBA)
-
-
4
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
5
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
6
エクセルVBAにて =A1=B1とすれば A1とB1のセル内容が一緒だった場合 TRUE 違っていれ
Visual Basic(VBA)
-
7
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
8
VBA 複数条件の分岐処理の上手な方法
Visual Basic(VBA)
-
9
VBAに詳しい方教えてください。
Visual Basic(VBA)
-
10
VBAに関して
Visual Basic(VBA)
-
11
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
12
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
13
エクセルの合計を自動で表示させたいです
Visual Basic(VBA)
-
14
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
15
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
16
左右の表のキー位置を合わせたい
Visual Basic(VBA)
-
17
Excel vbaのテキストボックスの扱い
Excel(エクセル)
-
18
VBAを使用した時間管理
Visual Basic(VBA)
-
19
Sub 要具ライフ() ActiveSheet.Cells.Find(what:=TOPゴム")."
Visual Basic(VBA)
-
20
エクセルのマクロについて教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つのマクロでチェックボックス...
-
Excel・Word リサーチ機能を無...
-
Excel マクロ VBA プロシー...
-
一つのTeratermのマクロで複数...
-
特定文字のある行の前に空白行...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
VBAでカタカナ→ローマ字の変換...
-
エクセルで別のセルにあるふり...
-
エクセルに張り付けた写真のフ...
-
Excelでボタン(フォームコント...
-
TERA TERMを隠す方法
-
エクセルで特定の列が0表示の場...
-
マクロ実行時、ユーザーフォー...
-
VC++ 2008 EXPRESS "_T"識別子...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ExcelVBA 図形をクリックした...
-
EXCELのVBAでRange("A1:C4")を...
-
Excelのマクロについて教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
他人が作ったマクロの理解
-
ExcelVBAでPDFを閉じるソース
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
マクロ実行時、ユーザーフォー...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
TeraTermマクロの文字列結合
-
PDF出力マクロについて。マクロ...
-
#defineの定数を文字列として読...
-
エクセルのマクロをセルの値に...
-
wordを起動した際に特定のペー...
おすすめ情報