- ベストアンサー
Excelで指定したフォルダに保存するマクロ
- Excel2003で、シートをコピーし別ファイルとして保存する方法を教えてください。
- 保存先のフォルダがネットワーク上にある場合、指定することはできますか?
- 保存ダイアログを開く理由は何ですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こちらでは、IP Address 指定だとファイル名が,"" で括られてしまいましたが フォルダ名とファイル名が一緒くたになることはありませんでした。Excel2010 UNC名だとうまく行きました。 Sub てすと() Dim Sname As String, Fname As Variant Dim oFs As Object Const FolName As String = "\\サーバー名\共有名\フォルダ名\" Set oFs = CreateObject("Scripting.FileSystemObject") If oFs.folderExists(FolName) = False Then MsgBox FolName & " が見つかりません" Set oFs = Nothing Exit Sub End If ActiveSheet.Select ActiveSheet.Copy Sname = Range("O46").Value If Sname = "" Then Sname = ThisWorkbook.Name End If Fname = Application.GetSaveAsFilename(InitialFileName:=FolName & Sname, _ fileFilter:="Excel(*.xls), *.xls") If Fname <> False Then ActiveWorkbook.SaveAs Fname End If Set oFs = Nothing End Sub
その他の回答 (1)
- tohru999
- ベストアンサー率49% (76/154)
Folname = "ネットワーク上フォルダのフルパス" 上記を例えば Folname = "\\192.168.1.1\Folder1\" にして、 Fname = Application.GetSaveAsFilename(InitialFileName:=Sname, を Fname = Application.GetSaveAsFilename(InitialFileName:=Folname & Sname, に変更
お礼
回答ありがとうございました! No.2さんの方法で解決できました。 また機会があれば お願いします(*・∀・)ノ゛ この場をお借りしまして、No.2さんの補足に書きました不具合ですが ちょっとした操作ミスで発生していたことが判明し、教えていただいた方法で解決できました! お騒がせし、申し訳ありませんでした。
補足
ご回答ありがとうございます。 Fname = Application.GetSaveAsFilename(InitialFileName:=Folname & Sname, この記述だと、ファイル名にフォルダ名がプラスされてしまいます。 できれば、保存するファイル名はセルの値だけにしたいのですが可能でしょうか?
お礼
ご回答ありがとうございます! 完璧でした!ちゃんと指定したフォルダにセルの値で保存することができました! 本当にありがとうございました☆(≧∀≦*)ノ
補足
大変です! 同じファイルの別のシートにコマンドボタンとマクロをコピーしたら使えなくなりました。 コンパイルエラー:プロシージャの外では無効です というメッセージが出て、 Set oFs = CreateObject("Scripting.FileSystemObject") この部分の、文頭にチェックが入りました。 同じマクロは、別シートにコピーできないのでしょうか?