マクロ実行中にシートのアクセスできなくなるエラーを解消したい。
下記コードは"当直台帳"というファイル上で走らせます。
"当直台帳"を開くと、ユーザーフォームが立ち上がるため、そこから起動するものです。
一度別のファイルに保存してから、再度"当直台帳"に保存しようとすると、上手くいきません。
解決可能でしょうか。御願いします。
Private Sub 当直を始める_Click()Dim d As String
Dim t As String
Dim i As Long
Application.DisplayAlerts = False Unload UserForm1
Application.EnableCancelKey = xlDisabled
ActiveWorkbook.Unprotect Password:="1930"
d = Worksheets("list").Range("A1").Value
t = Format(Date, "yyyymm")
If d <> t Then
ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\当直台帳" & d
ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\当直台帳" 'ここで止まる
Worksheets("list").Range("A1").Value = t
For i = 5 To Sheets.Count
If i = 5 Then
Sheets(i).Select
Else
Sheets(i).Select (False)
End If
Next i
ActiveWindow.SelectedSheets.Delete
End If
Sheets("当直mother").Select
Sheets("当直mother").Copy After:=Sheets(Worksheets.Count)
Sheets("当直mother (2)").Select
Sheets("当直mother (2)").Name = Format(Now, "当直d日")
ActiveSheet.Unprotect Password:="1930"
Range("H6:M6").Select
ActiveCell.FormulaR1C1 = Format(Now, "m月d日")
Range("P6:U6").Select
ActiveCell.FormulaR1C1 = Format(Now, "m月d日")
Range("F7:U100").Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="1930"
ActiveWorkbook.Protect "1930", Structure:=True
Application.DisplayAlerts = False
End Sub
No.2ベストアンサー
- 回答日時:
No.1 の訂正
大変申し訳ございません。ここではなくもっと前でエラーですね。
「ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\当直台帳" & d」
「ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\当直台帳" 'ここで止まる」
の2行を
「ActiveSheet.Copy」
「ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\当直台帳" & d」
「ActiveWindow.Close」
「ActiveWorkbook.Save」
にしたらどうでしょうか?
最後の「ActiveWorkbook.Save」は不要かもしれませんが…
ありがとうございます。
回答いただいたままだとうまくいかなかったのですが、copyを作るということで、該当部分を書き換えてうまくいかました。
止まる1行前を
Thisworkbook.savecopyas と書いていけば、止まるとこの式自体不要になりました。
お陰様でエラーから抜けられました。
ありがとうございます。
No.1
- 回答日時:
「Sheets("当直mother (2)").Select」
「Sheets("当直mother (2)").Name = Format(Now, "当直d日")」
この2行を
「Sheets(Worksheets.Count).Name = Format(Now, "当直d日")」
にされたらどうなりますか?
これで改善されるのならば、コピーしたときにシート名のカッコ内の数が「2」以外になっている可能性が高いです。(内部でうまく更新されない状態で続けてコピーすると次の数が使われるので…)
実際には最後のシートの後にコピーして追加するので、新しく追加されたシートが最後のシートになるのでこういう書き方の方が間違いありません。
今回は多分必要ありませんがセレクトしたい場合は
「Sheets(Worksheets.Count).Select」
「ActiveSheet.Name = Format(Now, "当直d日")」
にされると良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「優・良・可」・・・色々なラ...
-
尊敬する人侮辱されたら不愉快...
-
髪を剃って白い浴衣みたいなや...
-
あなたの理想の人・尊敬する人...
-
防火管理関係の書類の保管期間...
-
消防法17条 建物を使用しなく...
-
「消防」「消防局」「消防本部...
-
消火器設置 位置変更に対する罰則
-
消防への届出について教えて下さい
-
倉庫内に事務所を作る場合の届...
-
消火器の設置について
-
保険調剤薬局は防火対象物の区...
-
公道の消火栓の管理責任は?
-
消防士さんって結構ワンナイト...
-
倉庫は居室にあたるか、また排...
-
消防法16項イの条件について
-
防火管理者の法的責任について...
-
救急車がいつどこで出動したか...
-
勤務先で火災警報が作動した時...
-
ガソリンって販売するのに制約...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「優・良・可」・・・色々なラ...
-
ブルマーが好き
-
成人の方へ‐薬指を曲げずに小指...
-
航空自衛隊の当直勤務って何時...
-
暑いので、防災訓練ではヘルメ...
-
防災訓練に関心は、あるか否か?
-
同じ部署で作業してる仲良い4...
-
当直
-
あなたの理想の人・尊敬する人...
-
マクロ実行中にシートのアクセ...
-
防火管理関係の書類の保管期間...
-
消防への届出について教えて下さい
-
「消防」「消防局」「消防本部...
-
消防法17条 建物を使用しなく...
-
保険調剤薬局は防火対象物の区...
-
公道の消火栓の管理責任は?
-
消火器設置 位置変更に対する罰則
-
消防士さんって結構ワンナイト...
-
倉庫内に事務所を作る場合の届...
-
消火器の設置について
おすすめ情報