本当に度々失礼いたします。
今現在 excel上のB1、B2に指定のファイルを
B3で指定されたフォルダにコピーしようとしております。
vba
1Option Explicit 2 3'B1とB2から次年度、当年度のデータを作成する。 4Sub ボタン1_Click() 5 Dim strTmp, copyDest, konnnenndoFile, jinenndoFile, copyDir As String 6 Dim ret As Long 7 8 konnnenndoFile = Range("B1").Value 9 jinenndoFile = Range("B2").Value 10 copyDir = Range("B3").Value 11 12 'B1の当年度 のデータを読込 コピーする。 13 strTmp = Dir(konnnenndoFile) 14 copyDest = copyDir & strTmp 15 FileCopy konnnenndoFile, copyDest 16End Sub 17
上記のソースにて
konnnenndoFile = Range("B1").Value
と入れていてそのファイルはあるのは確実なのですが
(excelのB1をクリックして開くので)
strTmp = Dir(konnnenndoFile)
にてstrTmp="" なのです……
・Dir関数の使い方が不味いのでしょうか?
・変数の指定方法が不味いのでしょうか?
・フォルダとファイル名が長すぎると不味いのでしょうか?(半角190文字です。)
グーグルさんで調べても不明だったため本当に申し訳ないのですが
何か情報をお持ちな方はコメント頂けますと嬉しく思います。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/dir-function
リファレンスはお読みになられましたか。
Dirの()の中はファイル名ではなくファイルのパスをいれるのですが、"B1"にはファイルのパスが入っているっということでよろしいですか?
1T2R3M4様
リファレンス読みましたが理解できなかったのです。(現在トラブルの原因究明が出来ず)
申し訳ございません。
D0NKAMA様
はい。ファイルのフルパスが入っております。
\\192.168.1.11\gyoumu\200_事業\★事業実績データ\事業実績自動化\テストフォルダ\\211112_10月末予定●7期社完工高と利益(2期以降)%20-%20コレが元.xlsx
このようなデータがB1にははいっております。
一度コピー元のファイルと同じ場所でVBAが実行できるようにして
Debug.Print ThisWorkbook.path
なりを実行してみて表示されるとパスと一致していますか?
また今回の問題とは関係ないと思いますがその宣言だとstrTmp, copyDest, konnnenndoFile, jinenndoFileはバリアント型になっています。
hatena19さんは原因の説明もしていて、既にFileSystemObjectの解説記事のリンクも貼ってるのに、後出しでソースだけ貼り付けているjinojiさんがベストアンサーって、さすがに選び方に問題がありすぎませんか。選んだ理由をお聞かせ願えますか?
radian様
ご指摘ごもっともです……
Hatena19様大変失礼しました。
ご紹介して頂いたURLを参考にしていて
うんうん唸っていた際に
jinojiさんの直ソースを見て実装出来たので思わずBAにしてしまいました。
回答2件
あなたの回答
tips
プレビュー