執筆:EugeneAmnis
Excel 2019 for Mac でのファイル関連関数の挙動について 3
前々回、前回に引き続き、Mac版の VBA のファイル関連関数の挙動を見ていきます。今回がひとまず最後となります。最後の内容はファイル情報関数です。 VBA では読み込むファイルサイズを確認し、Excel では読み込めないような大きなサイズのファイルを検知するために利用される方も多いと思います。
前提条件
フォルダ VbaMacVsWin3 とその中にある test.txt の情報を見ます。流れとして、まず Mac側でフォルダとファイルを作成し、Windows側にコピー。挙動検証後にMac側の元ファイルを上書きし、挙動検証という形をとっています。 test.txtファイルは変更していません。フォルダ VbaMacVsWin3 に関しては 挙動検証後にスクリーンショットを撮るのを忘れた為、あくまで参考としてください。
Windows
Mac
コードと結果
Windows
Mac
コード
Sub dateAttrTest()
Dim dpath As String
Dim path As String
dpath = ThisWorkbook.Worksheets(2).Range("B2").value
path = ThisWorkbook.Worksheets(2).Range("B3").value
With ThisWorkbook.Worksheets(2)
.Range("B6").value = FileDateTime(dpath)//ファイル作成年月日
.Range("C6").value = FileDateTime(path)
.Range("B7").value = GetAttr(dpath) //属性取得
.Range("C7").value = GetAttr(path)
.Range("B8").value = FileLen(dpath) //サイズ
.Range("C8").value = FileLen(path)
End With
ほぼ、同じ結果になっていますが、test.txt の GetAttr関数結果が違っています。Windows版ではアーカイブ(最後のバックアップ後に変更されたファイル)となっていますが、Mac版では通常ファイルとなっています。手元のリファレンスでは Mac専用コードとなっているようです。
僅かな違いですが、実際にコーディングする場合は大きな問題になる可能性を秘めています。Windows と Mac 両方で使用されると思われる VBA を組んでいる方の少しでも参考になれば幸いです。
リンク
リンク