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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
マクロ、PDFを任意のフォルダへ保存
Excel(エクセル)
-
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
-
マクロでネットワーク上のコンピューターへの接続
Excel(エクセル)
-
-
4
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
5
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
6
保存先のフォルダ名を指定したいとき
Visual Basic(VBA)
-
7
SaveAsの保存先について
Visual Basic(VBA)
-
8
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
9
エクセルをPDFにし複数のユーザーが各自の指定のデスクトップフォルダに保存するVBAを教えてください
Excel(エクセル)
-
10
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
11
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
12
VBA ネットワーク上のファイルでカレントフォルダを取得するには?
Visual Basic(VBA)
-
13
VBAでサーバー上のファイルを開く
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
16
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
17
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
18
VBAでSaveAs使用し、指定していないのにデスクトップに保存される理由
PowerPoint(パワーポイント)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
パス名に2バイト文字(マルチバ...
-
vbsで選択ダイアログを表示した...
-
Excelで指定したフォルダに保存...
-
C ファイル出力で、フォルダが...
-
META-INFフォルダの置き場所に...
-
デスクトップの画像をhtmlに表...
-
エクセル VBA ファイルをフォ...
-
ファイル名と同名のフォルダを...
-
VBA:特定の文字を含むフォルダ...
-
サーバ内のフォルダ名と各フォ...
-
VBA フォルダ名に特定の文字を...
-
エクセルのデータをメモ帳に貼...
-
フォルダ配下のファイル作成日...
-
Excel VBA 同じ名前のフォルダ...
-
保存先のフォルダ名を指定した...
-
GetAttrが原因?
-
VBA 最新のフォルダ取得
-
自動的に作られるresource.hに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報