PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
rockjimmy
*停權中*
 

加入日期: Feb 2004
文章: 2,909
(問)Visual Basic for Application 7.0...支援UNICODE?

因為常常用excel的VBA作資料夾整理
資料夾中有部分是日文字
之前用win2003+office2003時有灌"Unicode 補完計畫"
所以使用時沒啥問題

最近改灌win7+office2010...
因為日文資料夾在WIN7都可以正常顯示,就沒有灌"Unicode 補完計畫"
但是....
使用同一個EXCEL VBA程式已經無法執行


VBA中都顯示????
有其他解決方法嗎?
還是一定要灌"Unicode 補完計畫"?
     
      
舊 2012-01-01, 10:20 PM #1
回應時引用此文章
rockjimmy離線中  
dmwc
Master Member
 

加入日期: May 2001
文章: 1,622
補完計畫用了後,檔名就變成了 Big5 日文,建議就先找可以轉回來的軟體

Vista 以後已經不能再用補完計畫,這軟體也已經過時不適用了,這軟體雖然叫 Unicode補完計畫,但事實上和 Unicode 扯不上邊,應該叫 Big5補完計畫 才對
 
__________________
已關閉簽名檔

此文章於 2012-01-01 11:37 PM 被 dmwc 編輯.
舊 2012-01-01, 11:35 PM #2
回應時引用此文章
dmwc離線中  
Lan-EVO
Basic Member
 

加入日期: Nov 2011
文章: 15
如樓上所言,Vista之後,Windows kernel都是unicode處理。
樓主會有這個問題,在於您的目錄名稱是BIG-5,所以處理上會出問題。
建議可先透過ConvertZ處理成unicode編碼後,再來試試您的VBA。
舊 2012-01-02, 12:03 AM #3
回應時引用此文章
Lan-EVO離線中  
rockjimmy
*停權中*
 

加入日期: Feb 2004
文章: 2,909
先感謝大大們的回應嚕~~

>>>在於您的目錄名稱是BIG-5,所以處理上會出問題。
要如何知道資料夾是BIG5 or UNICODE?
剛剛上日文網站隨便複製一串日文
命名在新資料夾上
結果VBA遇到日文字也是?????
舊 2012-01-02, 09:01 PM #4
回應時引用此文章
rockjimmy離線中  
Lan-EVO
Basic Member
 

加入日期: Nov 2011
文章: 15
這個問題應該是Excel VBA會將取得的字串轉為ANSI再丟給Windows API處理的關係。
網路上有解決的方案,是呼叫unicode version的Win32 API。
您可以參考一下:
代碼:
Private Declare Function Curt_Directory Lib "kernel32" Alias
舊 2012-01-03, 12:25 AM #5
回應時引用此文章
Lan-EVO離線中  
rockjimmy
*停權中*
 

加入日期: Feb 2004
文章: 2,909
引用:
作者Lan-EVO
這個問題應該是Excel VBA會將取得的字串轉為ANSI再丟給Windows API處理的關係。
網路上有解決的方案,是呼叫unicode version的Win32 API。
您可以參考一下:Private Declare Function Curt_Directory Lib "kernel32" Alias


>>>網路上有解決的方案,是呼叫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 編輯.
舊 2012-01-03, 10:11 PM #6
回應時引用此文章
rockjimmy離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是08:53 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。