No.9ベストアンサー
- 回答日時:
☆「出力先のフォルダを指定したい」について
・ 固定の場合は「C:\temp\」を変更して下さい。
・ 毎回選択したいのならば以下のような感じはいかがですか?
Sub Sample1()
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "保存先のフォルダを選択して下さい。"
.InitialFileName = "C:\temp\" 'デフォルトのホルダーを指定してください
If .Show = True Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs _
Filename:=.SelectedItems(1) & "\" & Format(Date, "yyyymmdd") & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
End If
End With
End Sub
再度、ご教授頂きましてありがとうございます。
頂いたマクロで解決いたしました。
何度も御手数をおかけいたしました。
また、大変恐縮ではございますが追加でご教授いただきたく。。
エクセルファイル作成後、作成したエクセルで特定のシートのデータを値でコピペ(一つのシートor複数シートの場合あり)→不要なシートを削除して保存したいのです。
何度も申し訳ございませんが、何卒ご教授願います。
No.10
- 回答日時:
エクセルファイル作成後、作成したエクセルで特定のシートのデータを値でコピペ(一つのシートor複数シートの場合あり)→不要なシートを削除して保存したいのです。
ほとんどなにをやりたいか判りません。
「エクセルファイル作成後」は、手作業で使った物ですか?プログラムによって作られたものですか?
その作成された「ファイル名」や「パス名」は何ですか?
「特定のシート」とは固定でしょうか?何かで算出するのでしょうか?固定ならばシート名を提示して下さい。算出するならそのやり方を説明して下さい。
「データを値でコピペ」とはシート全体を値でコピペで良いのでしょうか?
コピペ先は固定でしょうか?何かで算出するのでしょうか?固定ならばシート名を提示して下さい。算出するならそのやり方を説明して下さい。
「不要なシート」の判定はどのようにするのですか?
なお、元の質問に対する回答への質問ならば、別の質問にする必要はありませんが、元の質問や回答と直接関係ない物は別に質問を立てていただいた方が良いと思います。「教えて!goo」の質問はあなただけの物ではなく、後から他の人も使えるようになっていますので…
>>エクセルファイル作成後、作成したエクセルで特定のシートのデータを値でコピペ(一つのシートor複数シートの場合あり)→不要なシートを削除して保存したいのです。
>ほとんどなにをやりたいか判りません。
→説明が足らず、申し訳ございません。
> 「エクセルファイル作成後」は、手作業で使った物ですか?プログラムによって作られたものですか?
→はい、いろいろと調べ作ったものと、記録マクロを作成し、callで呼び出しています。
ただし、時間がかかってしまいご相談した次第です。
>その作成された「ファイル名」や「パス名」は何ですか?
>「特定のシート」とは固定でしょうか?何かで算出するのでしょうか?固定ならばシート名を提示して下さい。算出するならそのやり方を説明して下さい。
>「データを値でコピペ」とはシート全体を値でコピペで良いのでしょうか?
>コピペ先は固定でしょうか?何かで算出するのでしょうか?固定ならばシート名を提示して下さい。算出するならそのやり方を説明して下さい。
>「不要なシート」の判定はどのようにするのですか?
>なお、元の質問に対する回答への質問ならば、別の質問にする必要はありませんが、元の質問や回答と直接関係ない物は別に質問を立てていただいた方が良いと思います。「教えて!goo」の質問はあなただけの物ではなく、後から他の人も使えるようになっていますので…
→仰る通りですね。
別質問として再投稿させて頂きます。
本件につきましては、ご教授頂き、大変助かりました。
ありがとうございました。
No.8
- 回答日時:
No.7 の補足
マクロ有の「○○.xlsm」を「××.xlsx」に名前を付けて保存しても開いている間はマクロのコードが残ってしまっているので、以下のブックを閉じる処理を行っています。
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
※ このブックだけ開いている場合はエクセルごと閉じます。他のブックも開いているならこのブックだけ閉じます
No.7
- 回答日時:
元のファイル名は全く使わないのならば
Sub エクセル作成()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd") & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
End Sub
お世話になっております。
今回、いろいろとご教授頂きましてありがとうございました。
無事、ご教授頂きましたマクロで解決いたしました。
ただ、出力先のフォルダを指定したいのですが
ご教授頂きましたマクロをどのように修正したらよろしいでしょうか?
恐れ入りますが、再度ご教授願います。
よろしくお願いいたします。
No.6
- 回答日時:
No.4 の補足
元と同じフォルダに別名保存するならば、フォルダの指定は不要でこのまま実行するだけで済みます。
No.5
- 回答日時:
元フルパスには「"C:●●.xlsm"」が入ります。
→ 元フォルダ名(ファイル名も含む)ファイル名には最終的には「"C:●●yymmdd.xlsx"」が入ります。→ 出力ファイルのフルパス(ファイル名も含む)
「ファイル名 = Mid(元フルパス, 1, Len(元フルパス) - 5) 」の件
ファイル名の拡張子部分の「.xlsm」(5文字)を削除するための処理です。
再度、ご教授頂きましてありがとうございます。
ファイル名 = Mid(元フルパス, 1, Len(元フルパス) - 5)の部分についても、理解いたしました。
また、何度も申し訳ありません。
上記にてご教授頂いた通り実際のパス、ファイル名を入力したのですが下記エラーが出てしまいます。
コンパイルエラー:
修正候補:識別子
原因は何が考えられますでしょうか?
No.4
- 回答日時:
もしかしたら 先ほど取り消された質問の件でしょうか?
それでしたら以下のような物はいかがでしょうか?
違っていたら、申し訳ございません。無視して下さい。
Sub エクセル作成()
Dim 元フルパス As String
Dim ファイル名 As String
元フルパス = ThisWorkbook.FullName
ファイル名 = Mid(元フルパス, 1, Len(元フルパス) - 5) & Format(Date, "yymmdd") & ".xlsx"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ファイル名, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
End If
Application.DisplayAlerts = True
End Sub
ご教授頂きましてありがとうございます。
はい、仰るとおりです。
重複してしまうので、削除いたしました。
知識不足な為、申し訳ありませんが
ご教授頂きました内容について追加で質問させてください。
元フルパス、ファイル名とは下記という認識でよろしいのでしょうか?
元フルパス
"C:●●"→元フォルダ名(ファイル名は省く)
ファイル名
"●●.xlsm"
また、「ファイル名 = Mid(元フルパス, 1, Len(元フルパス) - 5) 」の内容を詳しくご教授願います。
No.2
- 回答日時:
コピペ元のコード作成したバージョンと質問者さんのバージョンに相違があるかもですね
その為質問者さんの方では存在しない、又は削除されてるとか?
あとは自作の物を本体を忘れてコピペしたなど?
No.1
- 回答日時:
> 解決方法をご教授願います。
実際のコードもエラーメッセージも無しにアドバイス出来る事だと、
まずエラーメッセージを確認し、エラーの発生個所とメッセージの内容から原因を特定し、ヘルプなどで関数やメソッドのリファレンスを参考にして、期待している動作が行われるようにコードを修正する。
とかでしょうか。
・実際のコード
業務内容に関するとかで支障があるなら、変数名変えるなんかして抜粋したもの
・エラーメッセージ
・エラーの発生個所
・「:=」がエラーになるって事は、その部分消したり、「=」にしたら動作するの?
なんかの情報を提示すると、もう少し具体的なアドバイスが出来る人がいたり、いなかったりするかも。
提示事項が不足しておりましたね。
申し訳ありません。
補足にマクロ提示いたしました。
エラーは下記の通りになります。
:=の場合
コンパイルエラー
修正候補:式
=へ書き換えてみると
実行時エラー'438'
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
マクロ初心者で知識不足で申し訳ありませんが、何卒ご教授願います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) 【VBA】複数ブックから特定のシートを抽出して一つのブックに集約するマクロについて 3 2022/09/04 15:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) セルの変更で処理するマクロについて 1 2022/12/20 18:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
【ExcelVBA】シートをそれぞれ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
フォルダ内の複数ファイルから...
-
エクセルで参照しているデータ...
-
エクセルでウィンドウの枠固定...
-
Excelで指定範囲のデータ...
-
エクセルで別ブックをバックグ...
-
Excelファイルをダブルクリック...
-
外部ブック参照が#REF!になって...
-
ブックのピボットを別ブックに...
-
別ブックから入力規則でリスト...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
フォルダ内ブックの数式を全て...
-
アクセスvbaでエクセルブックを...
-
Excelで複数ブックの同一セルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
Excelでブックの共有を掛けると...
-
Excelで複数ブックの同一セルに...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
ブックのピボットを別ブックに...
-
エクセルファイルを開かずにpdf...
-
エクセル2016です。「ブッ...
-
ブックの保護ができないんです...
-
エクセルで50行ごとに区切った...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
エクセル 複数のブックを一度...
おすすめ情報
作成したマクロは下記の通りになります。
sub sample
ActiveSheet.Copy
ActiveWorkbook.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd"), _
FileFormat:=xlsx
End Sub