VBA エラート処理構造と利用事例

5
Excel VBA Diary (OneDrive問題に挑戦中) @excelvba_diary

@hoehoe1234 私も、合理的に予見可能なエラー処理は、もっぱらこの形式を使っています。特にWorksheetFunctionやクリップボード系はこれです。わざわざ飛ばす必要はないです。(あくまでも私の場合)

2022-01-05 20:15:15
ほえほえ@スプシマン @hoehoe1234

dim errno ・・・ on error resume next  エラーの発生しそうな単一またはそれに類する処理 errno = err.number on error goto 0 みたいな定形にしないといろいろ問題がありますよね。特に2重エラー検出できないとか。 twitter.com/excelspeedup/s…

2022-01-05 19:15:25
はけた@できるExcel2021 @excelspeedup

ただ、このロジック(かこれに類するロジック)でOn Error Resume Nextを書いた直後の文でエラーを紛れ込ませてしまったことがあって、かなりデバッグに苦労した思い出もあります。 twitter.com/KotorinChunChu…

2022-01-05 18:04:41
筒井.xls@エクセル関数擬人化本著者 @Tsutsui0524

@KotorinChunChun @ExcelVBAer お忙しかったらスルーして下さい IFERROR関数を使った方法が紹介されていて、強そうだと思ったのですがどうですか? 文字列比較の域を出ない感じですかね…? twitter.com/Tsutsui0524/st…

2022-01-05 18:32:47
筒井.xls@Excel関数擬人化本3/14発売! @Tsutsui0524

VBAでシートの存在有無判定 IFERROR関数がエラーを返すケースを利用する発想は無かったです…! IFERROR関数、エラー出して悔しがってそうですね pic.twitter.com/pewYfvdgoG twitter.com/aoiuewebsite/s…

2021-12-22 11:44:00
ちゅん🐤 @KotorinChunChun

シートの存在確認は、この書き方の方がオススメ。 ループで文字列比較による判定では、大文字小文字半角全角特殊文字の揺れで漏らす場合がある。 シート名に関しては Excelの仕様を理解するのは無理なので、Excelに判断を委ねた方がいい。 twitter.com/biitarou/statu…

2022-01-05 17:47:50
サモイタ@VBAって凄すぎ @biitarou

おお。 ループ無しでシートの存在確認が出来るのか。 pic.twitter.com/etixmaa1sY

2022-01-05 17:13:59
サモイタ@VBAって凄すぎ @biitarou

おお。 ループ無しでシートの存在確認が出来るのか。 pic.twitter.com/etixmaa1sY

2022-01-05 17:13:59
拡大
Excel VBA Diary (OneDrive問題に挑戦中) @excelvba_diary

エラー処理の基本はこれ On Error Resume Next (合理的にエラーの発生が予測できる処理) errNumber = Err.Number On Error GoTo 0 If errNumber <> 0 Then (エラー処理へ) 大概はこれで十分な気がする。 そもそも合理的に予測できないエラーはそこで中断してかまわない。

2021-12-24 22:06:50
筒井.xls@エクセル関数擬人化本著者 @Tsutsui0524

@ExcelQBag 例外がないかな~と色々探ってみたんですが 狙った通りの挙動になりますね ワークシート上でIFERRORにエラー出させるのは閉じている他のブックへの参照くらいみたいです これは思いつかなかったです

2021-12-22 13:26:32
筒井.xls@エクセル関数擬人化本著者 @Tsutsui0524

VBAでシートの存在有無判定 IFERROR関数がエラーを返すケースを利用する発想は無かったです…! IFERROR関数、エラー出して悔しがってそうですね twitter.com/aoiuewebsite/s… pic.twitter.com/pewYfvdgoG

2021-12-22 11:44:00
あおいぶろぐ@相互フォロー100% @aoiuewebsite

[Excel VBA]たった1行でシートの存在有無を確認する方法 aoiue.website/archives/3154 Evaluate, Exist, Microsoft, Office, エクセル, 簡単 2021/12/21 15:13

2021-12-21 15:13:17
拡大
ほえほえ@スプシマン @hoehoe1234

VBAではエラー処理をせずに止めたほうがよいケースが多いのですが、たとえばログ出力などではエラートラップを使用せざるを得ません。処理のリトライにも必要となりますので余裕があれば習得してみてください。ノンプロVBAでは必須機能ではないと思います。

2021-04-13 15:35:41
ほえほえ@スプシマン @hoehoe1234

docsに説明がありますが、 ①エラーハンドラーには活性/非活性とうい状態がある ②エラーハンドラーはスタックを遡る という2つの概念を理解すればエラー時の挙動は再エラーを含めて読めるようになります。

2021-04-13 15:33:59
ほえほえ@スプシマン @hoehoe1234

VBAのエラー(例外)は良く出来てるんだけど、欠点があって関数またぎではあまり機能しない。結果、関数内に閉じるんだけどそのときには3つの書き方があって記法としては4)を推奨します。 pic.twitter.com/qUDHbWB4RL

2021-04-13 15:32:31
拡大