
Excel2003で、シートをコピーし別ファイルとして保存したいのですが
保存先のフォルダがネットワーク上にあります。
ファイル名は、指定したセルの値で保存されるようにします。
以下の記述でマクロ実行すると、シートは別ファイル(BOOK1)としてコピーされ
ます。
名前をつけて保存ダイアログが開きますが、そのときにマイドキュメントが開き
ます。
Private Sub CommandButton1_Click()
ActiveSheet.Select
ActiveSheet.Copy
Dim Sname As String, Fname As Variant, Folname As String
Folname = "ネットワーク上フォルダのフルパス"
Sname = Range("O46").Value
If Sname = "" Then Sname = ThisWorkbook.Name
Fname = Application.GetSaveAsFilename(InitialFileName:=Sname,
fileFilter:="Excel(*.xls), *.xls")
If Fname <> False Then ActiveWorkbook.SaveAs Fname
End Sub
そもそもネットワーク上のフォルダを指定することはできないのでしょうか?
マクロに関してはずぶの素人で、上記の記述は過去の質問などを参考に作成しま
したので
どこかに間違いがあるのかも知れませんが、間違いを特定することができません。
お手数おかけし申し訳ありませんが、ご教示のほどよろしくお願いします。
補足として、保存する際にダイアログを開きたい理由は以下の通りです。
・保存先誤り防止(作業者が多数いて、使用するPCも違うため)
・ファイル名誤り防止(同じファイル名が存在しないかどうか確認)
No.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
この回答への補足
大変です!
同じファイルの別のシートにコマンドボタンとマクロをコピーしたら使えなくなりました。
コンパイルエラー:プロシージャの外では無効です
というメッセージが出て、
Set oFs = CreateObject("Scripting.FileSystemObject")
この部分の、文頭にチェックが入りました。
同じマクロは、別シートにコピーできないのでしょうか?
ご回答ありがとうございます!
完璧でした!ちゃんと指定したフォルダにセルの値で保存することができました!
本当にありがとうございました☆(≧∀≦*)ノ

No.1
- 回答日時:
Folname = "ネットワーク上フォルダのフルパス"
上記を例えば
Folname = "\\192.168.1.1\Folder1\"
にして、
Fname = Application.GetSaveAsFilename(InitialFileName:=Sname,
を
Fname = Application.GetSaveAsFilename(InitialFileName:=Folname & Sname,
に変更
この回答への補足
ご回答ありがとうございます。
Fname = Application.GetSaveAsFilename(InitialFileName:=Folname & Sname,
この記述だと、ファイル名にフォルダ名がプラスされてしまいます。
できれば、保存するファイル名はセルの値だけにしたいのですが可能でしょうか?
回答ありがとうございました!
No.2さんの方法で解決できました。
また機会があれば
お願いします(*・∀・)ノ゛
この場をお借りしまして、No.2さんの補足に書きました不具合ですが
ちょっとした操作ミスで発生していたことが判明し、教えていただいた方法で解決できました!
お騒がせし、申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/03 16:07
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
-
マクロでネットワーク上のコンピューターへの接続
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
6
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
7
ExcelVBA サーバーの(共有フォルダ)中のファイル移動
Excel(エクセル)
-
8
【Excel VBA】PDFを作成して,指定したフォルダに保存するコードについて
その他(Microsoft Office)
-
9
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
10
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
11
VBAでネットワークコンピュータのファイルにアクセスできない(XL2000)
Access(アクセス)
-
12
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
13
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
14
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
15
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
16
VBA ネットワーク上のファイルでカレントフォルダを取得するには?
Visual Basic(VBA)
-
17
エクセルVBAで一つ上の階層を指定して保存したい
Excel(エクセル)
-
18
VBA 新規ファイルを元ファイルと同じ場所に保存する方法
Excel(エクセル)
-
19
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
20
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(C#)フォルダを指定するダイ...
-
VBA 最新のフォルダ取得
-
Windows10でコマンドプロンプト...
-
Excelで指定したフォルダに保存...
-
フォルダの検索2
-
VBA フォルダの複数選択ができない
-
VBプロジェクトでのフォルダ構...
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
VB.NETでツリービューにフォル...
-
カレントフォルダって?
-
VBAで行うフォルダ・ファイル検...
-
ファイル名に特定の文字列を含...
-
windowsでテキストファイルの各...
-
エクセルマクロでデータの比較
-
フォルダを開く
-
デスクトップの画像をhtmlに表...
-
exeと同じ階層にフォルダを配置...
-
会社のネットワーク上のファイ...
-
Excel VBA:ダイアログを使って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
【マクロ】ファイル名の日付に...
-
C ファイル出力で、フォルダが...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
Excelで指定したフォルダに保存...
-
VBAでファイル名を指定して保存...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
カレントフォルダって?
-
Excel VBA マクロ フォルダ名を...
-
VBA フォルダの複数選択ができない
-
ExcelVBAでフォルダへのハイパ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報