
下記の↓↓↓↓↓↓部分でエラーが出ます。
「実行時エラー '1004':
'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト」
ちょろちょろマクロ組んでたのですが単純な
エラーで解決が出来ない状態です。
どなたかマクロ先生に教えて頂ければと思いますので
よろしくお願いします。
'指定額の抽出
Private Const MESSAGE_FINISH = "予算出力処理が完了しました"
Sub 予算データテキスト出力()
Dim ws1
Set ws1 = Worksheets("チェック一覧")
Dim m As Long
m = 3
Dim ws2
Set ws2 = Worksheets("予算データ")
Dim sm As String
Dim ws3
Dim sn
'チェック一覧シートのNo.が無くなるまで処理する
Do Until ws1.Cells(m, 1) = ""
Application.ScreenUpdating = False
If ws1.Cells(m, 4) = "" Then
'ナンバーがある場合は部門等をチェック一覧(ws1)→フォーム(ws2)に転記する
Else
ws2.Cells(2, 2) = ws1.Cells(m, 4)
'各部署のシート名をsmにセットする
sm = ws1.Cells(m, 2)
Set ws3 = Worksheets(sm)
'予算フォーム(ws2)の行変数「s」と各部署シート(ws3)の行変数「n」
Dim s
s = 4
Dim n
n = 9
Dim cnt
cnt = 1
Do Until n = 44
If ws3.Cells(n, 23) = 0 Then
'各数値等を各部署のシート(ws3)→フォーム(ws2)に転記する
Else
ws2.Cells(s, 1) = cnt
ws2.Cells(s, 3) = 6100
ws2.Cells(s, 4) = 0
ws2.Cells(s, 5) = ws3.Cells(3, 4)
ws2.Cells(s, 6) = ws3.Cells(5, 8)
ws2.Cells(s, 7) = ws3.Cells(n, 4)
ws2.Cells(s, 8) = ws3.Cells(n, 24)
ws2.Cells(s, 9) = ws3.Cells(n, 25)
ws2.Cells(s, 10) = ws3.Cells(n, 26)
ws2.Cells(s, 11) = ws3.Cells(n, 27)
ws2.Cells(s, 12) = ws3.Cells(n, 28)
ws2.Cells(s, 13) = ws3.Cells(n, 29)
ws2.Cells(s, 14) = ws3.Cells(n, 31)
ws2.Cells(s, 15) = ws3.Cells(n, 32)
ws2.Cells(s, 16) = ws3.Cells(n, 33)
ws2.Cells(s, 17) = ws3.Cells(n, 34)
ws2.Cells(s, 18) = ws3.Cells(n, 35)
ws2.Cells(s, 19) = ws3.Cells(n, 36)
s = s + 1
cnt = cnt + 1
End If
n = n + 1
Loop
'予算データに転記されたので出力する
ws2.Copy
' ↓↓↓↓↓この下の「SaveAs」がエラーになります。↓↓↓↓↓
ActiveWorkbook.SaveAs Filename:="D:\Library\Desktop\新しいフォルダー\" & ws2.Cells(s, 5).Value & ".xlm"
ActiveWindow.Close
ActiveWorkbook.Close savechanges:=False
'フォームに転記した情報をクリア
ws2.Select
Range(Cells(4, 1), Cells(44, 19)).Select
Selection.ClearContents
End If
m = m + 1
Loop
ws1.Select
MsgBox MESSAGE_FINISH
End Sub

No.1ベストアンサー
- 回答日時:
試していませんが、
ActiveWorkbook.SaveAs Filename:="D:\Library\Desktop\新しいフォルダー\" & ws2.Cells(s, 5).Value & ".xlm"
のファイルの拡張子は、".xlsm"が正しいかと。
ありがとうございます、ただ、その拡張子を間違えていたので
質問をし直したいと思います。
試していたので、エクセル形式ですが、本来のはテキストで保存なんです。
ActiveWorkbook.SaveAs Filename:="D:\Library\Desktop\新しいフォルダー\" & ws2.Cells(s, 5).Value & ".txt", FileFormat:=xlText
これで質問したかったんです。
No.2
- 回答日時:
Excel のバージョンは 2003 以前でしょうか?それとも 2007 以降でしょうか?
2003 以前の物ならば以下が参考になるかもしれません。
https://support.microsoft.com/ja-jp/help/292482/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
Excel ファイルに保存すると実行時エラーになる
Visual Basic(VBA)
-
SaveAsエラー回避
Excel(エクセル)
-
-
4
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
5
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
6
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
7
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【Access】Excelインポート時に...
-
マクロで"#N/A"のエラー行を削...
-
お助けください!VBAのファイル...
-
mailstorehomeのエクスポートで...
-
文字列内で括弧を使うには
-
ACCESS VBAのSplit()関数の使用...
-
ASPでこんなエラーが出たんです...
-
実行時エラー'-2147467259(8000...
-
VBスクリプトでIEの404 not fou...
-
エクセル関数式=ABSで#VALUE!...
-
VBAで時間(00:00形式)を積算...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
On ErrorでエラーNoが0
-
VB2010でデータグリッドビュー...
-
数式は残し値をクリアするマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
On ErrorでエラーNoが0
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
マクロで"#N/A"のエラー行を削...
-
VBAのリストボックスで、横スク...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
Filter関数を用いた結果、何も...
-
文字列内で括弧を使うには
-
【VB.NET】 パワポ操作を非表示で
-
レコード登録時に「演算子があ...
おすすめ情報