[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Macで保存されたデータのVBAでの転記について』(あん)
いつもお世話になってます。
VBAを使用して、同一フォルダにある異なるシート名のシートを
統合する処理をしています。
デスクトップの統合用というフォルダにあるエクセルから、
シート名というシートのA列に名前のあるシート名のみを、
sheet1に統合していっていたのですが、
最近Macのパソコンが1つ増えて、
Macで上書き保存すると、このVBAでの読み込みが
出来なくなりました。
(実行時エラー1004:「”●●”(Macで保存したエクセルの保存名と
フルパス)が見つかりません。名前が変更されたか、移動や削除が
行われた可能性があります」というエラーが出ます)
Sub シートの統合()
Dim shT As Worksheet Dim shF As Worksheet Dim r As Range Dim fPath As String Dim fName As String Dim done As Boolean
Application.ScreenUpdating = False
Set shT = ThisWorkbook.Sheets("Sheet1") '集約用シート With ThisWorkbook.Sheets("シート名") '必要シート名登録シート Set r = .Range("A1", .Range("A" & Rows.Count).End(xlUp)) End With fPath = CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\統合用\" shT.Cells.ClearContents fName = Dir(fPath & "*.xls*") Do While fName <> "" With Workbooks.Open(fPath & fName) For Each shF In .Worksheets If IsNumeric(Application.Match(shF.Name, r, 0)) Then If done Then shF.Range("A1").CurrentRegion.Offset(1).Copy shT.Cells(shT.Range("A1", shT.UsedRange).Rows.Count + 1, "A")
Else shF.Range("A1").CurrentRegion.Copy shT.Range("A1") done = True End If End If Next .Close False End With fName = Dir() Loop End Sub
Macの場合はフルパスが”¥”ではなく、
”/”を使うと聞いたことがありますが、
ウィンドウズで作成して、MACで上書き保存し、
ウィンドウズのPCのフォルダに入れて、
読み込みをしてもフルパスは変更されるのでしょうか??
ちなみにウィンドウズで保存しなおしても、
読み込みはできませんでした
途方にくれています。
どなたか助けて下さい。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
PC上のフォルダを共有してそこにアクセスさせるのではなく、別途ファイルサーバを用意して、そこで読み書きさせるとどうなりますか? または、お互いに機種依存文字があるので、ファイル名を単純な文字列に変えるとどうなりますか?
(???) 2017/09/26(火) 16:22
Dim sp as string sp=Application.PathSeparator
fPath = CreateObject("WScript.Shell").SpecialFolders("DeskTop") & sp & "統合用" & sp
(マナ) 2017/09/26(火) 20:57
(マナ) 2017/09/26(火) 21:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.