OK、指定した場所にあるファイルのファイル サイズをオフにして取得する非常に単純な VBA スクリプトを作成しました ( dscarrから更新コードを編集します)。
Public Function FileSize(path As String) As Variant
On Error GoTo Err_FileSize:
Dim retVal As Variant
Dim filesys As Object
Dim file As Object
retVal = ""
Set filesys = CreateObject("Scripting.FileSystemObject")
Set file = filesys.GetFile(path)
retVal = file.Size
Exit_FileSize: On Error Resume Next
FileSize = retVal
Exit Function
Err_FileSize: retVal = "Error: " & Err.Description
Resume Exit_FileSize
End Function
これを新しいブックにインポートする場合は、ドキュメントを「Excel マクロ有効ブック」として空のファイルと一緒に保存readme.txt
し、A1 に「./readme.txt」、A2、A2 に「=FileSize(A1)」を配置します。はreadme.txt
、0 バイトのファイル サイズに正しく評価されます。偉大な。その後、ドキュメントを保存して閉じてから再度開くと、マクロが無効になっているという警告が表示されます。それらを有効にすると、A2 の内容が変更され#VALUE!
、何をしても機能が再び機能しなくなります。誰もこれを見たことがありますか?ここで私が犯している間違いを誰か指摘できますか?
編集:この問題は、相対パスを使用していることが原因のようです。なぜそれが新しいワークブックで機能するのか説明できませんが、一度保存して再度開くことはありませんが、絶対パスを使用すると問題が解決します.dscarrが特定したように、「ファイルが見つかりません」問題でした.