[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『サーバー上のフォルダーにファイルを保存』(hita)
会社のサーバ上にあるフォルダ(例:0901(日付です))にファイルを保存したいのですが、マクロの知識が乏しいためご教授をお願いいたします。
0901フォルダーが未作成なら、0901フォルダを作成しファイルを保存。
既に0901フォルダーが作成してあればフォルダーを作成せずに、作成済みのフォルダ―内にファイルを保存。
フォルダーの有無は、多数の社員がサーバーを利用し、最初に利用した社員がフォルダーを作成する為です。
< 使用 Excel:Excel2016mac、使用 OS:Windows10 >
(砂糖) 2021/09/15(水) 10:37
(めいぷる) 2021/09/15(水) 11:19
Dim SaveDir As String
SaveDir = "\\12.34.56.789\02_共用_データ\02_報告要\" & Format(Date, "yyyymmdd")
If Dir(SaveDir, vbDirectory) = "" Then MkDir SaveDir
Dim Fname As String Fname = "\\rrr-sc\データ\" & Format(Date, "yyyymmdd") & 作成リスト.xlsx"
ActiveWorkbook.SaveAs Filename:= _ SaveDir & "\" & Fname, FileFormat:=xlOpenXMLWorkbook
End If
End Sub
営業所のサーバー(\\rrr-sc〜)の中にある作成リストというファイルを本社サーバー(\\12,34,〜)のフォルダーに保存したいのですが、上記のマクロで上手くいきません。
色んな事間違ってたり、不足しているのだと思います。
上司がそんな難しくないやろ、サッサと作ってくれ!と言われ、大変困っています(苦笑)
あと、既に本社サーバーに日付フォルダーが作成されている場合のマクロも教えていただけると助かります。
どうぞ、よろしくお願いします。
(hita) 2021/09/15(水) 14:54
Fname = "\\rrr-sc\データ\" & Format(Date, "yyyymmdd") & 作成リスト.xlsx"
あと、
>既に本社サーバーに日付フォルダーが作成されている場合
「End If」の位置を変えるだけかと思います。
(わからん) 2021/09/15(水) 15:11
SaveDir & "\" & Fname
展開するとこうなるわけで【\\\】の部分が変です。
\\12.34.56.789\02_共用_データ\02_報告要\20210915\\\rrr-sc\データ\20210915作成リスト.xlsx" ~~~
■2
また、存在しないフォルダには保存できなかったと思いますので日付フォルダの配下の「\rrr-sc\データ」フォルダも先に作っておくべきでしょう。(試してないので存在しないフォルダに保存できたらごめんなさい)
提示されたコードでは、フォルダの作成に【MkDirステートメント】を使用されてますが、MkDirの場合親フォルダから順に作っていかなければならず、また既にある場合はエラーになってしまうので判定と作成を繰り返す必要がでてきてしまうのでわりとめんどくさいです。
この点について「使用 OS:Windows10」などのWindows環境であるならば、コマンドプロンプトの【MDコマンド】を利用すると深い階層まで一気に作成できるというメリットがあるので、使える環境であれば一考の価値があるとおもいます。
(既にフォルダが存在する場合でも、実行時エラーにならないというのもお勧めポイント)
■3
以上を踏まえて、Windows版のExcelならばこんな感じでよいとおもいます。
(使用 Excel:Excel2016mac とのことなので正常に動くのか不明ですが・・・・)
Sub さんぷる() Dim フォルダパス As String Dim ファイル名 As String
フォルダパス = "\\12.34.56.789\02_共用_データ\02_報告要\" & Format(Date, "yyyymmdd") & "\rrr-sc\データ"
'MDコマンドでフォルダを作成(フォルダの作成が終わるまでループして待機) With CreateObject("WScript.Shell").Exec("%ComSpec% /c MD " & フォルダパス) Do While .Status = 0 DoEvents Loop End With
'保存処理 ファイル名 = Format(Date, "yyyymmdd") & "作成リスト"
ActiveWorkbook.SaveAs _ Filename:=フォルダパス & "\" & ファイル名, _ FileFormat:=xlOpenXMLWorkbook End Sub
(もこな2 ) 2021/09/16(木) 08:05
お礼が遅くなり申し訳ございません。
そもそもスキルがない上に慌てていた事もあり、チンプンカンプンな質問をしてしまったと反省しております。
また、不明な事がありましたらエクセルの先生方にお尋ねしたいと思います。
本当にありがとうございました。
(hita) 2021/09/16(木) 10:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.