少し前にも同様の質問を投稿したのですが、内容が曖昧だったと感じたので、改めて質問させていただきます。
目的は、Microsoft Wordで作成した文章ファイルにパスワードがかかっているか否かを判定することです。
現時点では、ファイルオープン時にパスワード入力を失敗させた Runtime Error を catch することで対処しようとしているのですが、このエラーの掴み方が分かりません。
エラーメッセージには abnomal program termination と出ています。
このエラーを掴む方法をどなたかご存知ないでしょうか。
よろしくお願いします。
↓ソースは以下の通りです↓
#import "C:\Program Files\Microsoft Office\Office\Mso9.dll" no_namespace rename("DocumentProperties", "DocumentPropertiesDOC")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace
#import "C:\Program Files\Microsoft Office\Office\Msword9.olb" rename("ExitWindows", "ExitWindowsDOC")
try {
using namespace Word;
_ApplicationPtr pAPP;
COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//Wordの起動
pAPP.CreateInstance(L"Word.Application");
pAPP->Visible = TRUE;
//新規ドキュメントを作成
DocumentsPtr pDocuments = pAPP->GetDocuments();
//任意のパスワード付きファイルをオープン。
//5要素目は正しくないパスワード。
_DocumentPtr pDocument =
pDocuments->Open(COleVariant("C:\\test.doc"),vOpt,vOpt,vOpt,
COleVariant("password"),vOpt,vOpt,vOpt,vOpt,vOpt, vOpt, vOpt);
//Wordを閉じる
pAPP->Quit();
}
catch(CException *e) {
AfxMessageBox("キャッチ");
e->Delete();
}
No.1ベストアンサー
- 回答日時:
この方面にはくらいので外している可能性は多いですが……。
CExeption は、MFC が送出する例外らしいので、これとは別のクラスの例外が送出されているのではないでしょうか?
もしも、例外が送出されるのであれば、
catch(...)
で、全例外を補足してみると、何か進展があるかもしれませんが。
すべての例外を掴むのには catch(...) を使えばよかったのですね、恥ずかしながら初見でした。
CExeptionですべて掴めると勘違いしていました。
ソースの方ですが、catch(...)を使うことで無事に例外を補足できているようです。
これでとりあえずは目的の処理を行うことができそうです。
非常に助かりました、ありがとうございます。
ただ、相変わらず何という例外が出ているのかは不明のままです。
こちらの方でも調べていますが、解決するまでしばらくの間は未解決とさせてもらいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) office 2021へ自分用のクイックアクセスとマクロをコピーしたい 2 2023/03/11 21:15
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Word(ワード) MacのOSをアップデートしたら、Wordが使用できなくなりました。 2015年年末に頃にMacとM 2 2022/05/15 12:39
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
個別に違う添付ファイルを付け...
-
複数のブックを新しいブックのS...
-
拡張子「.IDJ」を、windo...
-
A4の紙に印刷されている文字を...
-
ビデオファイルのプロパティの...
-
エクセルで「特定の文字を含む...
-
e-taxで送信ファイルの拡張子が...
-
ファイル数と合計サイズの取得方法
-
スマホでtxtファイルを編集する...
-
情けない話ですが成田エクスプ...
-
RSSフィードと無断転載について
-
エアコンの冷媒 R410Aの重...
-
eclipseでタブ入力ができなくな...
-
HTMLで画像をクリックすると、...
-
リストビューの選択状態を取得...
-
マックドローで書いた図はウイ...
-
VBS フォルダ内にあるすべての...
-
フラッシュ動画をVBで扱うに...
-
コードの一部を外だしにする方...
-
SUGOCAを使うにあたって無人駅...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
スマホでtxtファイルを編集する...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
Fortniteのクラッシュについて
-
ビデオファイルのプロパティの...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ガラケーからPCへの写真の取り込み
-
情けない話ですが成田エクスプ...
-
PC内で速度を遅くした音源をCD...
-
TextBoxにフォーカスを与えると...
-
2枚、マイクロSDカードを入...
-
エアコンの冷媒 R410Aの重...
-
リストビューの選択状態を取得...
-
RSSフィードと無断転載について
-
拡張子「.IDJ」を、windo...
-
VBA:カウンターの i の値が開放...
-
ファイル数と合計サイズの取得方法
-
複数のブックを新しいブックのS...
おすすめ情報