![]() |
||
|
*停權中*
加入日期: Feb 2004
文章: 2,909
|
(問)Visual Basic for Application 7.0...支援UNICODE?
因為常常用excel的VBA作資料夾整理
資料夾中有部分是日文字 之前用win2003+office2003時有灌"Unicode 補完計畫" 所以使用時沒啥問題 最近改灌win7+office2010... 因為日文資料夾在WIN7都可以正常顯示,就沒有灌"Unicode 補完計畫" 但是.... 使用同一個EXCEL VBA程式已經無法執行 VBA中都顯示???? 有其他解決方法嗎? 還是一定要灌"Unicode 補完計畫"? |
|||||||
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: May 2001
文章: 1,622
|
補完計畫用了後,檔名就變成了 Big5 日文,建議就先找可以轉回來的軟體
Vista 以後已經不能再用補完計畫,這軟體也已經過時不適用了,這軟體雖然叫 Unicode補完計畫,但事實上和 Unicode 扯不上邊,應該叫 Big5補完計畫 才對
__________________
已關閉簽名檔 此文章於 2012-01-01 11:37 PM 被 dmwc 編輯. |
||
|
|
|
Basic Member
加入日期: Nov 2011
文章: 15
|
如樓上所言,Vista之後,Windows kernel都是unicode處理。
樓主會有這個問題,在於您的目錄名稱是BIG-5,所以處理上會出問題。 建議可先透過ConvertZ處理成unicode編碼後,再來試試您的VBA。 |
|
|
|
*停權中*
加入日期: Feb 2004
文章: 2,909
|
先感謝大大們的回應嚕~~
>>>在於您的目錄名稱是BIG-5,所以處理上會出問題。 要如何知道資料夾是BIG5 or UNICODE? 剛剛上日文網站隨便複製一串日文 命名在新資料夾上 結果VBA遇到日文字也是????? |
|
|
|
Basic Member
加入日期: Nov 2011
文章: 15
|
這個問題應該是Excel VBA會將取得的字串轉為ANSI再丟給Windows API處理的關係。
網路上有解決的方案,是呼叫unicode version的Win32 API。 您可以參考一下: 代碼:
Private Declare Function Curt_Directory Lib "kernel32" Alias |
|
|
|
*停權中*
加入日期: Feb 2004
文章: 2,909
|
引用:
>>>網路上有解決的方案,是呼叫unicode version的Win32 API。 假如unicode字串"市場の商品"---塞到A A的內容就變成"市場?商品" L大不好意思...小弟算是半路出家無法了解"呼叫"這意思 可否麻煩L大給個大概方向,示範一小段"呼叫unicode version的Win32 API" 先感恩了@@a... ==L大說的是下面這東西嗎@@?== Declare 陳述式加上 PtrSafe 關鍵字是建議使用的語法。只有當 Declare 陳述式中需要儲存 64 位元數量的所有資料類型 (參數和傳回值) 都更新為在 64 位元整數情況下使用 LongLong,或者在指標和控制代碼情況下使用 LongPtr 時,包含 PtrSafe 的 Declare 陳述式在 32 位元和 64 位元平台的 VBA7 開發環境中才能正確運作。若要確保和 VBA 6 版及先前版本的回溯相容性,請使用下面結構: #If Vba7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf 此文章於 2012-01-03 10:13 PM 被 rockjimmy 編輯. |
|
|
|