Excel VBA質問箱 IV

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

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


43927 / 76732 ←次へ | 前へ→

【37831】Re:別シートのPublic関数からのエラー取得
発言  ichinose  - 06/5/19(金) 19:28 -

引用なし
パスワード
   ▼小川 さん:
こんばんは。

>掲示板の基本方針にのっとった形で質問させていただきます。
「このように質問して下さい」と質問の仕方の良い例として、
どこかに掲載したいですねえ!!


>1.「何がしたいのか」
> Excel(2000)において、シートから別のシートのPublic関数内のエラーをトラップし、
> Errオブジェクトからメッセージを取得したい。
>
>2.「何をやったか」
> Sheet1で On Error Goto によるエラーとラップを記述し、Sheet2のPublic関数を呼び出します。
> 呼び出し先の関数内で Err.Raise して、Sheet1でトラップしたエラーのメッセージを取得します。
> メッセージは Err.Description から取得していますが、設定値した文字列とは違う
> 文字列(「アプリケーション定義またはオブジェクト定義のエラーです。」)になってしまいます。
本当ですねえ!!
Excel/VBAでは、ワークシートオブジェクトを扱うとき
Sheet1.Cells(1,1)というように
直接オブジェクトを指定せずにWorksheetsコレクションを通して
指定する事を推奨しています(MS社のMsdnのどこかで見ました)。
(なにやら、いろいろと不具合があるみたいです)

よって、これも

> ソースは以下のとおりです。
>
>----------------------------------------------------
><Sheet1>
>Public Sub test()
>On Error GoTo ERR_ROUTINE
>
  Worksheets("Sheet2").testSub
'として、試してみて下さい
'因みに
'このtestsubがThisworkbookに置いたばあいも
'  thisworkbook.testsubでは、駄目でした
'  workbooks(thisworkbook.name).testsub 'はOKでした
>
>Exit Sub
>ERR_ROUTINE:
>  Debug.Print Err.Description
>End Sub
>
> <Sheet2>
>Public Sub testSub()
>  Call Err.Raise(10003, , "test1")
>End Sub
>
>----------------------------------------------------


試してみて下さい。
これは、目安箱に入れときたいね!!
0 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 お礼

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