Posts Tagged With: 2013

[WU]安全性更新後 Excel 很慢、且無法開啟檔案

這個月的安全性更新中, Office 更新完後,公司部分電腦的 Excel 發生異常,直接點檔案兩次,會跳出:

傳送命令給程式時發生錯誤

Windows 找不到檔案路徑\檔案名稱,請確定您輸入正確的名稱,然後再試一次

所以依照 DDE 的標準方式處置,包含移除非微軟的增益集,其中發現了奇怪的現象,如圖,會出現:

excel_addon_01

符號表工具列 增益集

 

在 增益集設定中 ,出現硬碟找不到實體路徑的 Office 2007 (office12) 的增益集 [Chinese Translation Addin]

excel_addon_02

增益集 [Chinese Translation Addin]

試過修復 Office 也沒用,開新帳號測試,結果新帳號正常。

研判應該是註冊資訊檔異常。

1. 關閉 Excel ,由於 Excel 異常,可能無法正常關閉,請務必使用工作管理員確認 Excel 關閉。
2. 將下列機碼的 Excel 改成 Excel.old

Excel 2010
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\14.0\Excel

Excel 2013
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\15.0\Excel

註:部分電腦 HKEY_LOCAL_MACHINE 下可能沒有 Excel ,若沒有可忽略

3. 從開始工具列捷徑 開啟 Excel ,頁籤應已無 標點符號增益集
4. Excel 選項 > 增益集 > COM增益集 > 把不存在的增益集刪除
5. 關閉 Excel ,對著一般 excel 檔案點兩下,看是否正常開啟。
6. 正常開啟後,可把機碼 Excel.old 刪除,收工。

目前發現會出問題無法正常開啟的是 Office 2010/2013 x86 。
Office 2007 有碰上加入這個工具列,但可能本來就是 Office 2007 的增益集,因此不會發生衝突,不用可停用。

我懷疑是微軟封裝更新時,忘了把機碼移除,導致大家死得很難看。

參考:https://support.microsoft.com/zh-tw/help/280504/how-to-troubleshoot-startup-problems-in-excel

註:這周小紅傘更新後,預設排程每 168 小時全機掃描一次,好像變成每 168 分鐘掃描一次,也造成 Excel 很慢,暫時先停用排程,建議大家也看看小紅傘事件紀錄。

廣告
Categories: 工作點滴, 更新與回報 | 標籤: | 1 則迴響

[VBA] Office 2013 x64 以後版本呼叫 Windows API 要加關鍵字 PtrSafe

工作上有一個很少用的工具 Excel 巨集,裡面放了一堆 API ,是以前寫的。

這兩天臨時要用到,用 Excel 開起來後,一片滿江紅,下面的圖檔是我處理完後加個測試行做出來的,檔案就跟第一行一樣,宣告區全是紅的。

Office 2013 VBA 版本

Office 2013 VBA 版本

從版權畫面可以看到,VBA 7.1 的大版本懸掛在那。

滿江紅是看不出來要改啥,所以上網查半天,詳細說明請參考 MSDN 線上手冊:

Delare 陳述式 https://msdn.microsoft.com/zh-tw/library/office/gg278581.aspx

搞定後才發現,重新輸入程式碼,換行時,VBA 程式碼自動檢查就會提醒你,在 Office x64 下,要加 PtrSafe :

自動提醒要加 PtrSafe

自動提醒要加 PtrSafe

可以比對 [錯誤] / [視窗] 兩行宣告,就只差在 PtrSafe ,錯誤那行沒有輸入 PtrSafe 就會跳錯。

所以也可以推知,舊版本的 VBA 在 x64 下,若有呼叫到 Windows API 都須修改宣告,否則根本不能跑,可能非微軟的協力廠商,例如 AutoCAD 也受此影響。

當然又回到那句老話,這樣看來,微軟十年前根本是騙大家的,VB6 要上到 x64 還是有很多解法,就看微軟願不願意而已,因為在 Office 中已經解決了阿~

微軟不再支援 VB6 的理由,又消滅了一個…

Categories: Office, 技術分享 | 標籤: | 發表留言

[Office] 2016 家用及中小企業版

很多企業會選擇 Office 家用及中小企業版,2013/2016 基本上都一樣,背面看到僅限單一 PC 安裝,跟當時 2010 說法稍微不同。

Office_2016_單機

Office_2016_單機

2013/2016 都會附上一張小卡片,上面有一個很像序號的金鑰在上面,千萬注意,這不是金鑰,這只是兌換金鑰,你只能用這個兌換真正的金鑰一次,後續都得使用真正的金鑰。

Office_2016_卡片

Office_2016_卡片

注意,依照步驟 1登入網頁時,因為 Microsoft 帳號會自動登入,所以若是幫公司安裝或是幫別人安裝時,步驟 1請立刻注意右上角登入的身分,若不是想要註冊的帳號,先完成步驟 3,改用想要註冊的帳號登入後,再輸入兌換金鑰,這樣可避免在註冊過程中,因為自動登入 Microsoft 帳號問題,導致軟體註冊到非預期帳號,若是已經註冊到別的帳號去,只能電洽客服處理。

先確認右上角的帳號

先確認右上角的帳號

輸入後的兌換金鑰,會有一套 Office 2016 掛到你的 Microsoft 帳號內,可以在帳號內查詢真正的序號金鑰、下載光碟、或下載安裝執行檔,這邊 IT 要注意,每組序號都會寫入下載的光碟或執行檔中,對 IT 來說,不能用同一個光碟檔或安裝檔安裝不同的序號,必須每個序號單獨下載。

查詢序號金鑰可以這樣做,依照上面卡片的網址連入:http://www.office.com/myaccount

或著依據下圖輸入:https://stores.office.com/myaccount

這樣可以管理所有掛在這個帳號下的 Office ,IT 就是開幾個帳號專門註冊 Office 給同仁使用。

Office_MyAccount

Office 帳號管理

之後,依據安裝日期選擇該日期的區塊,點選 [從光碟安裝]:

Office2016_HB_SN

查詢序號

就可以在上圖右下角查得真正 Office 安裝用的金鑰,配合下載燒錄光碟,注意,雖然是光碟影像檔,但內含金鑰,所以第二次以上就要改為電話啟動,微軟客服也會查核安裝次數。

[2016/12/15 補充照片]

Office 2016 家用及中小企業版 吊卡版包裝

Office 2016 家用及中小企業版 吊卡版包裝

[2017/06/04 補充螢幕截圖]

https://stores.office.com/myaccount 登入,已可同時看到 Office 零售版跟 Office 365 (非大量授權版) ,補充畫面如下:

Office 365/2013/2016

Office 365/2013/2016

 

Categories: Office, 工作點滴 | 標籤: | 1 則迴響

[VBA] LongLong 超長整數

話說,公司的專案支援 VBScript 外掛,這幾天在用 Excel 2013 的 VBA 7.1 寫 VBScript 。

因為裡面要用到位元旗標,我就很順手的打了:
2^i

想說,VBA 原始碼自動感知會幫我加空白,就繼續往下寫。

寫完以後用 Excel 測試,變成 #VALUE ,就用追蹤方式追查,才知道這行有問題。

手動改成 2 ^ i 就沒問題,好奇之下另外開個小專案測試:

誤使用到超長整數符號

誤使用到超長整數符號

用除錯模式看,型別居然是 LongLong 。

按下 F2 查物件類別庫,果然有 LongLong ,用 HEX(-1) 測試,是 8 bytes 的超長整數:

LongLong 為 8 bytes 超長整數

LongLong 為 8 bytes 超長整數

用 Google 搜尋 MSDN ,看起來是 x64 版本的 VBA 就加入了,應該是 Office 2010 x64 以後開始有此功能:
64 位元 Visual Basic for Applications 概觀:https://msdn.microsoft.com/zh-tw/library/office/Gg264421.aspx

順便回頭測了 Excel 2003 的 VBA 6.5:

Excel 2003 VBA 6.5 正確處理次方運算符號

Excel 2003 VBA 6.5 正確處理次方運算符號

舊版本的 VBA 就能自動把 2^2 轉成 2 ^ 2 。

從 LongLong 超長整數的 VBA 7.1 來看當初微軟在 2005 年宣告 VB6 不再支援的理由又消滅了一個,不是不能支援 64 bits 及加超長整數,而是不願意加,是不為也,非不能也。

Categories: 工作點滴, 技術分享 | 標籤: | 1 則迴響

在WordPress.com寫網誌.

%d 位部落客按了讚: