Board logo

標題: *.exe 欲取得本身之檔名應如何下語法 [打印本頁]

作者: yangjie    時間: 2010-11-5 00:21     標題: *.exe 欲取得本身之檔名應如何下語法

請教諸位先進:
Sub Main()
    Dim objXLApp
    Dim objXLBook
     Dim fso3
    Set fso3 = CreateObject("Scripting.FileSystemObject")
    GetAn3 = fso3.GetbaseName(myself)
    MsgBox GetAn3
  End Sub
以上轉為*.exe   欲取得本身之檔名 myself應如何下語法
作者: Min    時間: 2010-11-5 21:11

GetbaseName裡面是放路徑...
小弟愚昧 不了解您提問的"以上轉為*.exe"...
作者: yangjie    時間: 2010-11-5 23:52

本帖最後由 yangjie 於 2010-11-5 23:53 編輯

感謝 Min 大大
已在VB區讓您給解決了  f1 = App.EXEName  f1 就是BaseName
以下全文供大家參考 轉成執行檔*.exe後可以開同檔名的*.xls
不用再去理會安全性層級問題
Sub Main()
    Dim f1
    f1 = App.EXEName
    Dim fso, f As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(f1 & ".xls")
    Dim n
    n = fso.GetParentFolderName(f.Path)
    Set objXLApp = CreateObject("Excel.Application")
    objXLApp.Visible = True
    Set objXLBook = objXLApp.Workbooks.Open(n & "\" & f1 & ".xls")
    Set objXLBook = Nothing
    Set objXLApp = Nothing
    Set fso = Nothing
    Set n = Nothing
    Set f = Nothing
End Sub
作者: Min    時間: 2010-11-6 00:44

呵呵呵~
原來yangjie兄是想繞過EXCEL VBA安全性 開啟EXCEL...
這個我也做過 不過我是用VBS
其方式都是與您的大同小異~
作者: yangjie    時間: 2010-11-6 11:35

本帖最後由 yangjie 於 2010-11-6 11:45 編輯

回復 4# Min


    不好意思讓Min兄見笑了、、、
其主要省下敎對PC不很熟有關Macro的事,
以前也是用VBS處理。
一旦改檔名,則VBS內容也要改,才想用*.exe
順道請教1:
如何作法?  讓他人非得用*.exe才開得了我的*.xls   
否則會application.quit

順道請教2:
以前用過*.xls  去設定 Excel程式   想在*.exe內執行以下"設定Excel"
VB應如何寫法
Private Sub Workbook_Open()
    yangan = GetSetting(appname:="yangApp", section:="Startup1", key:="使用確認", Default:=88)
    SaveSetting "yangApp", "Startup1", "使用確認", yangan

   Application.Quit
End Sub
作者: Min    時間: 2010-11-6 19:54

1.
請問您的目的是什麼? 要用excel 又不讓人家開excel.... 好艱深的問題>"<
如果您的目的只是要讓users沒有開啟巨集 就看不到資料 那直接到excel區耙文 就可以找到相關的文章..
不過無論是哪一種方式 都會有漏洞... Excel 進階區的HUNGCHILIN版主 就發好多類的文章..

2.
您前面不是就有寫到 Set objXLApp = CreateObject("Excel.Application") ...
要引用excel進來 才可以使用excel功能~

還有VBS不需要跟著改檔名喔... 善用一下函數^^
Replace(Wscript.ScriptFullName, Right(Wscript.ScriptFullName, 4), ".xls")
作者: yangjie    時間: 2010-11-7 22:25

回復 6# Min


    Replace(Wscript.ScriptFullName, Right(Wscript.ScriptFullName, 4), ".xls")
可否先取得  am=Wscript.ScriptFullName
                  Replace(am, Right(am, 4), ".xls")

我嘗試看看    謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)