★以下エラー箇所★にて、エラーが発生してしまい修正ができず困っています。
エラー内容は、
「実行時エラー1004,SaveAsメソッドは失敗しました'_Workbook'オブジェクト]
ファイルの種類は、xmlドキュメント(エクセル状態)
Private Sub ファイル名作成()
Dim lastRow As Long
Dim supplierNames As Object
Dim supplierName As Variant
' データの最終行を取得
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
' 仕入先名称を格納するコレクションを作成
Set supplierNames = CreateObject("Scripting.Dictionary")
' データの重複を排除してコレクションに追加
For i = 2 To lastRow ' ヘッダー行を除外
If supplierNames.Exists(Cells(i, "B").Value) = False Then
supplierNames.Add Cells(i, "B").Value, 1
End If
Next i
' コレクションの要素をファイル名として連結
For Each supplierName In supplierNames.Keys
fileName = fileName & supplierName & ","
Next supplierName
' ファイル名の最後のカンマを削除
fileName = Left(fileName, Len(fileName) - 1)
' ファイル名に使用できない文字を削除する
fileName = ReplaceInvalidFileNameCharacters(fileName)
' ファイルを保存
' On Error Resume Next
' ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.Path & "\" & "単価変更リスト_" & Format(Date, "yyyymmdd") & "_" & fileName, _
' FileFormat:=xlOpenXMLWorkbook
★以下エラー箇所★
ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.Path & "" & "単価変更リスト_" & Format(Date, "yyyymmdd") & "_" & fileName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
' If Err.Number > 0 Then
' MsgBox ("ファイルを選択してください")
' End
' End If
'単価リストブックアクティブ用
priceListBook = ActiveWorkbook.Name
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは
ご質問と直接には関係ありませんが・・
>fileName:=ActiveWorkbook.Path & "" & ~~
の部分は、普通に考えるとコメントアウトされている方の
> fileName:=ActiveWorkbook.Path & "\" & ~~
の方が一般的なように感じますけれど、そういう意図なのでしょうか。
(どちらでも、処理上は問題にはなりませんけれど)
エラーの原因となりそうな点を想像してみると・・
1)ReplaceInvalidFileNameCharacters関数の内容が不明ですが、意図通りの処理になっていないということはありませんか?
2)ファイル名の文字数制限やファイルパスの文字数制限に引っかかってはいませんか?
ファイル名を文字列連結で作成しているので、かなり長くなる可能性がありそうです。
(パスの文字数制限は、確か、260文字程度だったように思います)
いずれの場合も、最終的に作成されたパスを確認してみればわかるのではないかと思いますけれど・・
ありがとうございました。盲点でした。
ファイル名にA株式会社,B~C~とずっと続いており、エクセルの方の行を半分削除したらいけました。
文字数制限のようでした。
No.3
- 回答日時:
こんにちは
マクロ付きのブックをFileFormat:=xlOpenXMLWorkbookで保存したいと言う事であれば(処理部分はコピペ)
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=ActiveWorkbook.Path & "" & "単価変更リスト_" & Format(Date, "yyyymmdd") & "_" & FileName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
手動で名前を付けて保存の時に聞かれるアラートをYesで選択と同じ処理になります
ちなみに
ActiveWorkbook.Path & の後にファイルパスの区切り文字(セパレーター)が必要かどうかは目的パスによると思います・・
No.2
- 回答日時:
すみません、別拡張子で保存したいということですね
別途エディタを開いて拡張子をtxtにして全コピペすればいけますよ
わからなかったらデスクトップにa.txtとか作成して
メモ帳で開いて全コピーでも
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) word_VBA_フォームからダイアログそこからの復帰について 2 2021/12/13 23:44
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) excel VBAでメールを送る方法について 2 2021/11/03 15:34
- Visual Basic(VBA) EXCLE VBA シートクリックしたら該当シートコピー 1 2021/11/11 16:37
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) wordのマクロで思うように行きません(ファイル削除ができない) 3 2023/09/12 08:34
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) 転記先VBA 一致しているセルがコピーされない 5 2021/11/15 17:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
NET USE コマンドでエ...
-
Debug Assertion Failed?
-
シェルスクリプトの実行エラー...
-
エクセルのワークシートに、文...
-
POV-Ray についての質問です!
-
vbaでファイルを開くパス名に変...
-
Access ADOで文字列を日付型へi...
-
Excel ファイルに保存すると実...
-
Web.Config 構成ファイルのエラー
-
.htaccessをローカルで実行したい
-
Eclipseでのエラー検出の機能に...
-
WNetAddConnection*()の使い方
-
PowerPoint(.pptx)ファイルをPD...
-
VBAで印刷するとエラーになって...
-
複数フォルダに格納されたファ...
-
エラーが出てDLできません。
-
【Adobe Premiere Element 2.0...
-
エラーコード 70 「書き込み...
-
VBAでon error goto文がきかない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
Web.Config 構成ファイルのエラー
-
vbaでファイルを開くパス名に変...
-
エラーコード 70 「書き込み...
-
Excel ファイルに保存すると実...
-
POV-Ray についての質問です!
-
シェルスクリプトの実行エラー...
-
不明なソフトウェア例外(0xe06...
-
Access ADOで文字列を日付型へi...
-
ホームページビルダーの”全体の...
-
C# HttpWebRequestのエラーにつ...
-
ASP.NETでのランタイムエラー?...
-
EXCELを開くとエラーがでます。
-
【ASP】500エラーが発生する【A...
-
LTspiceのTime Stepエラーについて
-
VBAで印刷するとエラーになって...
-
ACCESS VBAのOpenForm書き方
-
Eclipseでのエラー検出の機能に...
おすすめ情報
アドバイスしていただき、ありがとうございます。
早速、テストしてみましたが同じエラーが同じ場所で発生しています。
&の後に\を入れ忘れていたので、入れましたが同じでした。
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.Path & "\" & "単価変更リスト_" & Format(Date, "yyyymmdd") & "_" & fileName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
種類をXLSXでマクロを実行しても同じ結果となりました。