どなたかよろしくお願いします。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cドライブ内 容量を食っている...
-
Dドライブ使用していないのに...
-
DVD RWドライブが空なのに使用...
-
謎の白いファイル(Vista)
-
パソコンのC ドライブの占有率...
-
仮想メモリのドライブ変更をす...
-
SSDの容量が正しく表示されませ...
-
DVD-RWドライブの中に「CDに書...
-
ローカルディスクの容量を減ら...
-
ローカルディスクDに保存したの...
-
Cドライブの空き領域の表示がお...
-
VideoCDについて
-
Dドライブに保存していたファイ...
-
Surfaceを軽くする方法を教えて...
-
ページファイルがDドライブに...
-
一つのフォルダの最大容量はど...
-
Windowsフォルダの中の、消して...
-
icloudドライブのファイルをド...
-
パソコンのCドライブの容量の増...
-
ドライブCの容量がいっぱいに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cドライブ内 容量を食っている...
-
仮想メモリのドライブ変更をす...
-
一つのフォルダの最大容量はど...
-
外付けHDD容量残量の計算が合わ...
-
8GBのISOファイルをDVD-Rに書き...
-
Cドライブの空き領域の表示がお...
-
表示ファイルが多すぎてデスク...
-
空き容量が空けても空けても減る
-
pcのアイコンをクリックすると...
-
ノートパソコンの容量解消につ...
-
USB差し込んでファイルを開くに...
-
毎日勝手に減っていくCドライブ...
-
Surfaceを軽くする方法を教えて...
-
ネットワークドライブの容量の...
-
USBのファイルを取り込むマクロ...
-
cドライブの容量がいっぱいにな...
-
SSDの容量が正しく表示されませ...
-
Youtubeを見るとHD容量が大量に...
-
パソコンのC ドライブの占有率...
-
PC内の重いデータを探す方法
おすすめ情報