Excel 2019 for Mac VBA에서 AppleScript 설치 2
Excel 2019 for Mac VBA에서 AppleScript 설치 2
새해 복 많이 받으세요. 새해도 잘 부탁드립니다.
작년 , VBA에서 AppleScript를 설치하는 방법을 썼습니다.
이번에는 그 문제점을 해결해 나가고 싶습니다.
AppleScript 코드의 인라인이 다소 어렵습니다.
AppleScript를 VBA 인라인화하는 웹 앱 AppleScript2VBA을 만들었습니다.
UTF-8의 AppleScript 파일을 업로드하고 변환하면 Function의 형태로 인라인됩니다.
인라인화된 스크립트를 텍스트 출력한 것을 실행하는 것으로 자동적으로 ~/Library/Application Scripts/com.microsoft.Excel/에 인스톨 되게 되어 있습니다.
샘플 코드
Sub a2vcheck()
Dim root As String
Dim path1 As String
Dim appscript As String
root = "/Users/Shared"
path1 = root & Application.PathSeparator & "as2vbaTest3.applescript"
MsgBox (path1)
applescript = FormeA2V3()
Open path1 For Output As #2
Print #2, applescript
Close #2
ActiveWorkbook.FollowHyperlink Address:=root
End Sub
'AppleScript2VBA変換コード
Function FormeA2V3() As String
Dim code As String
code = "set root to (path to home folder) as string" & vbNewLine & "set mkEdir to root & " & ChrW(34) & "Library:Application Scripts:" & ChrW(34) & vbNewLine _
& "set tgtpath to root & " & ChrW(34) & "Library:Application Scripts:com.microsoft.Excel:" & ChrW(34) & vbNewLine & "set mkas to tgtpath & " & ChrW(34) & "test.applescript" & ChrW(34) & vbNewLine & vbNewLine _
& "set asval to "
code = code & ChrW(34) & "on lt8(rpath)" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " try" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " set txt to read (rpath) as " & Chr(-32397) & "class utf8" & Chr(-32396) & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " on error number err_num" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " set txt to false" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " end try" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " return txt as text" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & "end lt8" & ChrW(34)
code = code & vbNewLine & "tell application " & ChrW(34) & "Finder" & ChrW(34) & vbNewLine & "if not (exists tgtpath) then" & vbNewLine & "make new folder at mkEdir with properties {name:" & ChrW(34) & "com.microsoft.Excel" & ChrW(34) & "}" & vbNewLine & "end if" & vbNewLine & "end tell" & vbNewLine _
& vbNewLine & "try" & vbNewLine & "set tfile to open for access file mkas with write permission" & vbNewLine & "set eof of tfile to 0" & vbNewLine & " write asval to tfile" & vbNewLine & "end try" & vbNewLine & vbNewLine & "close access tfile" & vbNewLine & vbNewLine _
& "tell application " & ChrW(34) & "Finder" & ChrW(34) & vbNewLine & " open tgtpath" & vbNewLine & "end tell"
FormeA2V3 = code
End Function
만든 AppleScript 파일을 직접 하이퍼링크로 열 수 없음
시행착오한 결과, 먼저 동명의 빈 파일을 작성한 후에 덮어써서 하이퍼링크로 열 수 있게 되었습니다. 충분히 시간을 내야 할 것 같습니다.
이것은 어디까지나 가정하지만, OS가 인덱스 파일을 만들기 전에 하이퍼링크에서 열 때 오류가 발생하는 것으로 나타났습니다.
실제 거동
실제로 구현한 GIF가 여기입니다.
구현할 때는 사용자에게 경고를 표시하거나 확실히 설명해야 한다고 생각합니다.
AppleScript2VBA는 MIT License이므로 자유롭게 사용하십시오. 버그가 발생했을 경우는 내 사이트 (으)로부터 연락해 주시면 감사하겠습니다.
Reference
이 문제에 관하여(Excel 2019 for Mac VBA에서 AppleScript 설치 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/EugenesWorks/items/583579fdd37c19979c46텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)