データの集計にWINDOWSでマクロを組んでいて、完成したのでmacに移行したら全く動きませんでした。。。
調べてみたらmacではVBAは動作せず、Dir関数も動かないようですね。
MACのエクセル上でこれを動作させるにはどのようにすればいいでしょうか?
VBA
1Sub 確認() 2 3 Application.ScreenUpdating = False ' 動作を見えなくする 4 Set FSO = CreateObject("Scripting.FileSystemObject") ' ダイアログを使用できるように 5 6 With CreateObject("WScript.Shell") ' 既定の保存先をこのbookがある場所に指定 7 .CurrentDirectory = ThisWorkbook.Path & "\" 8 End With 9 10'********************************************************************************************************************** 11' 【手動】 パスを入れる!!! 12 Const sDirPath As String = "C:\Users\lab\Desktop\目標フォルダ\" 13'********************************************************************************************************************** 14 15 16 t = Range("B3").Value ' 時間を取得 17 k = StrConv(UCase(Range("B4").Text), vbUpperCase) ' 地点イニシャルを取得(大文字に変換) 18 Key = "*" & k & "*" ' 絶対パスの検索用に前後にワイルドカード 19 i = 1 20 21 22 Set objFolder = FSO.GetFolder(sDirPath) ' 地点取得 23 24 For Each site In objFolder.SubFolders ' 地点のLoop 25 26 If site Like Key Then ' イニシャルを含んでいるか判定 27 28 machine = Dir(site & "\WAVE\", vbDirectory) ' 機材取得 29 30 Do While machine <> "" ' 機材フォルダでのLoop 31 32 If GetAttr(site & "\WAVE\" & machine) And vbDirectory Then ' フォルダか判定 33 If (machine) <> "." And (machine) <> ".." Then ' 名前のあるフォルダか判定 34 35 num = FSO.GetFolder(site & "\WAVE\" & machine).Files.Count ' ファイル数を取得する 36 37 If num <> t Then ' 観測時間分あるか判定 38 39 Cells(7 + i, 1) = site ' パス 40 Cells(7 + i, 3) = machine ' 機材名 41 Cells(7 + i, 4) = num ' データ数 42 43 i = i + 1 44 45 End If ' 観測時間分あるか判定終了 46 End If ' 名前のあるフォルダか判定終了 47 End If ' フォルダか判定終了 48 49 machine = Dir() 50 51 Loop ' 機材フォルダでのLoop終了 52 End If ' イニシャルを含んでいるか判定終了 53 Next site ' 地点フォルダでのLoop終了 54 55 Set objFso = Nothing 56 57 Range("B8").AutoFill Destination:=Range("B8:B" & Range("A" & Cells.Rows.Count).End(xlUp).Row), Type:=xlFillCopy ' B8から下にオートフィル 58 59 60 Filename = Application.GetSaveAsFilename(InitialFileName:="Result.csv" _ 61 , Filefilter:="CSVファイル,*.csv ,Excelファイル,*.xls*") ' 保存先ダイアログ 62 63 64 If Filename <> "False" Then ' ファイル名が指定されているのか判定 65 ThisWorkbook.SaveAs Filename, FileFormat:=xlCSV 66 Else 67 ThisWorkbook.SaveAs Filename:="確認結果" & ".csv", FileFormat:=xlCSV 68 End If 69 70 71End Sub 72