Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43929 / 76732 ←次へ | 前へ→

【37829】別シートのPublic関数からのエラー取得
質問  小川  - 06/5/19(金) 18:34 -

引用なし
パスワード
   はじめて質問させていただきます。
検索サイト等でいろいろと調べてみたのですが、方法が分からなかった為、
質問させていただきます。
掲示板の基本方針にのっとった形で質問させていただきます。

1.「何がしたいのか」
 Excel(2000)において、シートから別のシートのPublic関数内のエラーをトラップし、
 Errオブジェクトからメッセージを取得したい。

2.「何をやったか」
 Sheet1で On Error Goto によるエラーとラップを記述し、Sheet2のPublic関数を呼び出します。
 呼び出し先の関数内で Err.Raise して、Sheet1でトラップしたエラーのメッセージを取得します。
 メッセージは Err.Description から取得していますが、設定値した文字列とは違う
 文字列(「アプリケーション定義またはオブジェクト定義のエラーです。」)になってしまいます。
 ソースは以下のとおりです。

----------------------------------------------------
<Sheet1>
Public Sub test()
On Error GoTo ERR_ROUTINE

  Call Sheet2.testSub

Exit Sub
ERR_ROUTINE:
  Debug.Print Err.Description
End Sub

 <Sheet2>
Public Sub testSub()
  Call Err.Raise(10003, , "test1")
End Sub

----------------------------------------------------

※補足
エラーメッセージを Err.Description ではなく、グローバル変数や関数の引数等を使って受け取ることで、
同様の目的を果たせるとは思いますが、既存のソースにあわせる意味で上記方法で実現したいと考えています。
上記現象がExcelVBAの仕様であれば諦めもつくのですが、そのようなドキュメントを発見できませんでした。

Sheet2のソースを標準モジュールやクラスモジュールのPublicメソッドとして定義した場合は、
同様にエラーをトラップしても、Err.Description から "test1" が取得できます。

以上 ご助言の程、宜しくお願いいたします。

2 hits

【37829】別シートのPublic関数からのエラー取得 小川 06/5/19(金) 18:34 質問
【37831】Re:別シートのPublic関数からのエラー取得 ichinose 06/5/19(金) 19:28 発言
【37832】Re:別シートのPublic関数からのエラー取得 小川 06/5/19(金) 20:36 お礼
【37833】Re:別シートのPublic関数からのエラー取得 ichinose 06/5/19(金) 20:42 発言
【37834】Re:別シートのPublic関数からのエラー取得 小川 06/5/19(金) 20:57 お礼

43929 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free