年末の引き継ぎのため度々お問い合わせしてもう本当に申し訳ございません……
今現在VBAで
String fullpathfileName を一つ上のフォルダに移動させるプログラムを書いております……
vba
1 Dim jinenndoFile As String, copyDir As String 2 jinenndoFile = range("B2").Value 3 copyDir = range("B3").Value & "\" 4 5 Dim fso As Object 6 Set fso = New FileSystemObject ' インスタンス化 7 Dim nextKonnenndoFilename, nextJinendoFilename As String 8 '次年度の方が同じファイル名でありそうだから先にする…… 9 Dim f As File 10 Dim dirname, dirnameMoto, strtpm2 As String 11 nextJinendoFilename = strKiPlusOne(jinenndoFile) 12 Set f = fso.GetFile(jinenndoFile) 13 f.Name = nextJinendoFilename 'コレでファイル名変更らしいhttps://www.tipsfound.com/vba/18011 14 dirname = fso.GetParentFolderName(jinenndoFile) 15 dirnameMoto = Left(dirname, InStrRev(dirname, "\")) 16 Debug.Print jinenndoFile, dirnameMoto 17 strtpm2 =dirnameMoto."\期+1と式コピー前\".nextJinendoFilename 18 fso.MoveFile strtpm2, dirnameMoto
と今B2のjinenndoFileの期をstrKiPlusOneという関数で
+1したファイル名をnextJinendoFilename のフルパスにしております……
それでそのファイルが格納されているフォルダ \期+1と式コピー前
の一つ上に移動させたく上記のように実装してしまったのですが
上記のように凄い不格好なのです……
なんかフルパスで持っているファイルを
一つ上のフォルダに移動させるVBAの関数は無いのでしょうか?
上記ソースでは\期+1と式コピー前\とソースに書いてあるのが不格好過ぎて自分が情けないのです……
度々申し訳ないのですが何か情報をお持ちな方はコメント頂けますと嬉しく思います。
結局どうしたいのかよく判らないのですが。
不格好でも、想定通り動いているのなら問題ないのでは?
タイトルだけ見たら
f.Move f.ParentFolder.ParentFolder.Path & "\"
的なことがしたいのかと思ったけど、コードを見てわからなくなりました。
説明不足大変申し訳ございません。
fullpathfilename に ”\\hoge\fuga\file.xlsx”と入っている時に
そのfile.xlsxを\\hoge\file.xlsx
に移動させたいと思っていて
fugaが不明の場合そのような命令があれば良いと思っているのです……
そのような命令はVBAには無いのでしょうか?
と書いてjinoji様の
f.Move f.ParentFolder.ParentFolder.Path & "\"
が出来そうな気がするので見てみます……
都合よく1命令で出来るものが用意されていない事なんて幾らでもあるので、無ければ複数のやり方を組み合わせたり、自分で関数を作ればいいだけです。
自分で考えないと、何時までたっても応用力が身に付かないですよ。
radian様
ご忠告痛み入ります。
今回は 1命令で 上のフォルダ を取得出来そうな気がしたのですが
f.ParentFolder.ParentFolder.Path & "\"
↑親の ↑親の ↑パス
で出来ますね……
失礼いたしました。
回答2件
あなたの回答
tips
プレビュー