VBAでテキストファイルを作成して、データを記入するようなコードを作った時に、このデータを処理する時にエラーが発生した
原因は、Windows11のメモ帳がUTF-8がデフォルトに変わった為で、ANSIで処理する際に不具合が起きた
起動オプションを付けることで解決
shellPath = “notepad.exe /a ”
Shell shellPath, vbNormalFocus
VBAでテキストファイルを作成して、データを記入するようなコードを作った時に、このデータを処理する時にエラーが発生した
原因は、Windows11のメモ帳がUTF-8がデフォルトに変わった為で、ANSIで処理する際に不具合が起きた
起動オプションを付けることで解決
shellPath = “notepad.exe /a ”
Shell shellPath, vbNormalFocus
フォルダの存在
Dim FSO As Object
Dim FILEPATH As String
FILEPATH = “C:\Program Files\7-Zip”
Set FSO = CreateObject(“Scripting.FileSystemObject”)
If FSO.FolderExists(FILEPATH) Then
MSGBOX ”OK”
Else
MSGBOX ”NG”
End If
Set FSO = Nothing
ファイルの存在
Dim FSO As Object
Dim FILEPATH As String
FILEPATH = “C:\Program Files\7-Zip\7z.exe”
Set FSO = CreateObject(“Scripting.FileSystemObject”)
If FSO.FileExists(FILEPATH) Then
MSGBOX ”OK”
Else
MSGBOX ”NG”
End If
Set FSO = Nothing
FileExistsでは、半角の空白を含む”C:\Program Files\7-Zip\7z.exe”でチェック
Dim WshShell As Object
Set WshShell = CreateObject(“WScript.Shell”)
s7zPath = “””C:\Program Files\7-Zip\7z.exe”””
strFileName = “解凍するファイル名”
cmdtxt = s7zPath & ” x ” & strFileName & ” -otmp -aoa”
‘-aoa:既存ファイルをすべて上書きします。-oに続けて解凍先フォルダを指定 フルパスでない時は相対となる
Call WshShell.Run(cmdtxt)
cmdtxtに組み込む7z.exeのパスは、”””で”括りを指定しないとProgram Filesに含まれる空白の為、エラーとなるが、FileExistsで同様に記述すると”を含んで判別するので、存在しないと判定されるので注意