Excel VBA質問箱 IV

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

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


18706 / 76738 ←次へ | 前へ→

【63470】Re:エラー発生後、次のプロシージャを呼び出さない
発言  seg  - 09/11/9(月) 13:55 -

引用なし
パスワード
   ▼なみ さん:
Functionは重要なので覚えておいた方が良いと思います。

簡単に説明すると、仕事の結果を返す物です。

1.なぜプロシージャを作成する?
 同じ処理を何度も書くのではなく、関数化しておけば必要な時に
 Call ○○ と書けるから。

2.作成したプロシージャは、ちゃんと仕事をしたの?
 例えば印刷プロシージャを作成したとして、メイン処理側で処理が
 完了したので印刷プロシージャをコールし印刷しようとした。
 でも、そいつは正常に印刷したのかがメイン側から解らない。
 なので、正常に仕事をしたのか、不慮の事故にあったのかをメイン側
 (呼び出し側)に返す必要がある。全てではないけど。

3.引数と戻り値って?
 2.の例でいくと、印刷プロシージャは何を印刷すれば解らないので
 印刷するデータが必要。そのデータの事を『引数』という。
 引数を元に印刷処理を完了し、それを呼び出し側に伝える値を『戻り値』
 という。
 VBAの場合、戻り値が欲しい時に『Function』を使用する。
 また、『Function』を必ず用いる必要はなく、グローバル変数を使うと
 値は、どこからでも参照できる。(厳密には違う)

さて、元々の質問に戻ると
処理2の中でエラー処理をしていても、処理2が失敗したことをtest側(メイン側)
では認識出来ないから処理3を実行してしまう。もし失敗した事が解れば

If(処理2は失敗したの?) Then
  ' 失敗した処理
Else
  ’処理2が成功したから処理3
End If

と出来る。
頑張ってください^^
3 hits

【63464】エラー発生後、次のプロシージャを呼び出さない なみ 09/11/9(月) 9:46 質問
【63465】Re:エラー発生後、次のプロシージャを呼び... Jaka 09/11/9(月) 10:17 発言
【63468】Re:エラー発生後、次のプロシージャを呼び... なみ 09/11/9(月) 11:58 お礼
【63467】Re:エラー発生後、次のプロシージャを呼び... seg 09/11/9(月) 10:59 発言
【63469】Re:エラー発生後、次のプロシージャを呼び... なみ 09/11/9(月) 13:21 お礼
【63470】Re:エラー発生後、次のプロシージャを呼び... seg 09/11/9(月) 13:55 発言
【63472】Re:エラー発生後、次のプロシージャを呼び... でれすけ 09/11/9(月) 21:40 回答
【63479】Re:エラー発生後、次のプロシージャを呼び... seg 09/11/10(火) 9:28 発言

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