どなたかよろしくお願いします。
Excel2013でマクロを組んでUSBのデータをDドライブに取り込んでいます。
EドライブのドライブレターがUSBを刺した時にFとかGに書き換わる事が有るため下記のマクロをネットで見つけました。日報DATA(E)がドライブレターです。
Sub USB_drive()
'
' USB_drive Macro
'
Dim fs As Object, dvs As Object, dv As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set dvs = fs.drives
For Each dv In dvs
With dv
If .isready And .drivetype = 1 Then
If .volumename = "日報DATA" Then
MsgBox "USBドライブは " & .driveletter & " です。"
End If
End If
End With
Next
Set fs = Nothing
Set dvs = Nothing
End Sub
上記のようにドライブレターを取得してそれを使って現在動かしているマクロの
Const cnsSOUR = "E:\data\*.csv"
のEの部分を置換して動かすことはできるでしょうか。
E:はUSBドライブでDATAフォルダーのCSVファイルをD:ドライブのDATA2フォルダーに全部コピーしています。
下記が現在使っているマクロです
Sub USB取り込み()
'
Dim rc As Integer
intMsgBox = MsgBox("USBからの取り込みをを実行しますか?", vbOKCancel)
If intMsgBox = vbCancel Then
MsgBox "取り込みをキャンセルしました"
Exit Sub
End If
Const cnsSOUR = "E:\DATA\*.csv" ' 元ファイル(拡張子CSV全て)
Const cnsDEST = "D:\DATA2\" ' 先フォルダ
Dim objFSO As FileSystemObject ' FSO
Set objFSO = New FileSystemObject
' ファイルコピー
objFSO.CopyFile cnsSOUR, cnsDEST, True
Set objFSO = Nothing
Application.ScreenUpdating = True '画面更新
MsgBox "USBからの取り込みは正常に終了しました"
Sheets("操作").Select
Range("A1").Select
End Sub
他に方法があればそちらでも結構です
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
コードをそのまま活かすことにしました。
Const cnsSOUR = "E:\DATA\*.csv" ' 元ファイル(拡張子CSV全て)
これを、やめて、
'//
Dim mySOURCE As String 'モジュールレベルの変数にします。
Sub USB_drive()
'
' USB_drive Macro
'
Dim objFSO As FileSystemObject '参照設定
Dim dvs As Object, dv As Object
Set objFSO = New FileSystemObject
Set dvs = objFSO.drives
For Each dv In dvs
With dv
If .IsReady And .DriveType = 1 Then
'If .VolumeName = "日報DATA" Then
MsgBox "USBドライブは " & .DriveLetter & " です。"
mySOURCE = .DriveLetter '←これを加えます。
'End If
End If
End With
Next
Set objFSO = Nothing
Set dvs = Nothing
Call USB取り込み
End Sub
Sub USB取り込み() '
Dim rc As Integer '生きていない変数
Dim intMsgBox As VbMsgBoxResult
Dim objFSO As FileSystemObject ' FSO Windows Script Host Object Model (参照設定なら、上記のコードもそのまま使いましょう)
Const cnsDEST = "D:\DATA2\" ' 先フォルダ (これはそのまま)
intMsgBox = MsgBox("USBからの取り込みをを実行しますか?", vbOKCancel)
If intMsgBox = vbCancel Then
MsgBox "取り込みをキャンセルしました"
Exit Sub
End If
'このように、取得したドライブ名を以下に当てます。
mySOURCE = mySOURCE & ":\DATA\*.csv" ' 元ファイル(拡張子CSV全て)
Set objFSO = New FileSystemObject
' ファイルコピー
objFSO.CopyFile mySOURCE, cnsDEST, True
Application.ScreenUpdating = True '画面更新
If rc = 0 Then
MsgBox "USBからの取り込みは正常に終了しました"
End If
Sheets("操作").Select
Range("A1").Select
Set objFSO = Nothing
End Sub
'///
ありがとうございます。感激です
おかげさまでドライブレターが書き換わっても
取り込む事が出来るようになりました。
参照設定でUSBも見分けられるようになりました。
パソコンのOSがWindows8.1に新しくなり書き換わって
エラーが多く出るようになってましたので助かりました。
一日悩んでいたのがウソのようです
回答いただきまして本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBAを使用して、USBでつないだ機器の制御が出来るでしょうか?
Access(アクセス)
-
ExcelVBAと外付けメディアについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つのフォルダの最大容量はど...
-
Cドライブ内 容量を食っている...
-
インストールができません。
-
ネットワークドライブの容量の...
-
デスクトップに大量のファイル...
-
表示ファイルが多すぎてデスク...
-
何かが増殖!? Cドライブが勝...
-
Cドライブの容量が足りなくて...
-
外付けHDD容量残量の計算が合わ...
-
ドライブCの容量が変化するの...
-
マカフィーのフルスキャンが遅...
-
Dドライブの内容が見えないの...
-
HD容量の表示の違い
-
Cドライブの容量を減らしたい!
-
仮想メモリのドライブ変更をす...
-
cドライブの容量がいっぱいにな...
-
PCの容量不足解消
-
ドライブ内のフォルダサイズを...
-
パソコンのC ドライブの占有率...
-
GatewayのPCで(C:)ドライブ?の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cドライブ内 容量を食っている...
-
一つのフォルダの最大容量はど...
-
仮想メモリのドライブ変更をす...
-
USBのファイルを取り込むマクロ...
-
ネットワークドライブの容量の...
-
外付けHDD容量残量の計算が合わ...
-
毎日勝手に減っていくCドライブ...
-
パソコンのC ドライブの占有率...
-
Cドライブの空き領域の表示がお...
-
8GBのISOファイルをDVD-Rに書き...
-
Cドライブを圧迫している不明な...
-
デスクトップに大量のファイル...
-
icloudドライブのファイルをド...
-
表示ファイルが多すぎてデスク...
-
Dドライブ内のリカバリ削除 ...
-
cドライブの容量がいっぱいにな...
-
Dドライブの内容が見えないの...
-
GatewayのPCで(C:)ドライブ?の...
-
Dドライブのデータがいっぱいに...
-
ファイルを削除しても空き容量...
おすすめ情報