• ベストアンサー

名前が毎回異なるエクセルファイルを自動移動する方法

「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ依頼中」と言うフォルダがあります。 このフォルダにはエクセルシートのセルT6に入っている計算式 「=TEXT(L1,”YYYY年M月D日”).xism」の名前で保存されます。 これをCommandButtonなどを押して「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ済み」と呼ばれるフォルダにコピーして、「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ依頼中」に入っている元のファイルを自動で削除する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

>「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ依頼中」 このフォルダーにある、複写対象のブック自身に >CommandButton を配置し、このボタンが押されたら、 ・自身を「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ済み」   に保存し ・自身を削除する という動作でよければ、後記コードになるものと思います。 Sub Sample()  Const FDir = "D:\フォルダA:\作業\納入品受け入れ\納入品受け入れ依頼中"  Const TDir = "D:\フォルダA:\作業\納入品受け入れ\納入品受け入れ済み"  Dim MyName As String    MyName = ThisWorkbook.Name  ThisWorkbook.SaveAs Filename:=TDir & "\" & MyName  Kill FDir & "\" & MyName End Sub

kxsst808
質問者

お礼

ありがとうございました。 Sub sample() Const savepath As String = "D:\" '好きなパスに書き換えて Dim oldname As String oldname = ThisWorkbook.FullName ThisWorkbook.SaveAs savepath & ThisWorkbook.Name Kill oldname End Sub これで無事に解決しました。 参考になりました。

kxsst808
質問者

補足

MyName = ThisWorkbook.Name  ThisWorkbook.SaveAs Filename:=TDir & "\" & ToName  Kill FDir & "\" & MyName この部分でコンパイルエラーが出てしまいます。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

>ユーザー定義型は定義されていません。 このエラーなら Dim MyName As String この記述のとりわけ、 String この部分のスペルミスと思います。

kxsst808
質問者

お礼

ありがとうございました。 無事に解決しました。

すると、全ての回答が全文表示されます。
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>ここでコンパイルエラーが出てしまいます。 当方ではエラーになりません。 >「D:¥フォルダA:¥作業¥納入品受け入れ¥納入品受け入れ依頼中」と言うフォルダがあります。 これを  Const FDir = "D:\フォルダA:\作業\納入品受け入れ\納入品受け入れ依頼中" といった定数としています。 このダブルクォーテーションで囲んだ部分の記述が正しくないものと思います。 少なくとも、":"、つまりコロンが、フォルダー名の途中に登場することはありません。

kxsst808
質問者

お礼

ありがとうございました。 無事に解決しました。

kxsst808
質問者

補足

先程の件は解決しました。 後はDim MyName As Stringの所で「コンパイルエラー ユーザー定義型は定義されていません。」と表示されます。

すると、全ての回答が全文表示されます。
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

求めている仕様を私が読み誤っているかもしれないので 再ポストします。 L1セルの日付を書き換え、その後コマンドボタンを押す という動作であれば、後記コードとなりましょう。 Sub Sample()    Const FDir = "D:\フォルダA:\作業\納入品受け入れ\納入品受け入れ依頼中"  Const TDir = "D:\フォルダA:\作業\納入品受け入れ\納入品受け入れ済み"  Dim MyName As String  Dim ToName As String    ToName = Format(Range("L1").Value, "yyyy年m月d日") & ".xlsm"  MyName = ThisWorkbook.Name  ThisWorkbook.SaveAs Filename:=TDir & "\" & ToName  Kill FDir & "\" & MyName End Sub

kxsst808
質問者

お礼

ありがとうございました。 無事に解決しました。

kxsst808
質問者

補足

MyName = ThisWorkbook.Name  ThisWorkbook.SaveAs Filename:=TDir & "\" & ToName  Kill FDir & "\" & MyName ここでコンパイルエラーが出てしまいます。

すると、全ての回答が全文表示されます。

関連するQ&A