Excel開発15年セルネッツの竹本です。
今回の動画では、
お客様から「ExcelVBAの実行時エラーが出ました」というお問い合わせをいただいたので、
それについてどのように対応すべきなのかを紹介をしていきます。
テーマとしては「そのバグ瞬殺ここを見ろ」です。
今回の不具合で、お客様から送っていただいた画面キャプチャーの一部がこちらになります。
見ていただくと、「ファイルのパス」と「保存先のパス」と「ファイル名」と、「PDF」というのが見えます。
これは実行時エラーの中でも、易しいバグ対応の代表です。
対応ポイントは2つあります。
(プログラムソースを見て)わかったこと1つ目は、PDF出力の際に実行時エラーが発生している。これはもう見ればわかりますね。
プログラムソースを見れば一目瞭然だと思いますが、
「ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF」とあります。これは「PDFで保存する」というコードです。PDFを出力するときにエラーになっていて、この黄色いところがまさにエラーの発生箇所ということです。
今までは問題なくPDF出力できていたのに、なぜ突然エラーになったのかを、確認する必要があります。
これは仮説なんですけど、実際に1年以上(このツールを)使っていただいているお客様なので、これはバグといっても、製品の不具合バグではないんだろうなと感じます。
(となれば)疑うべきことは環境ですね。
例を挙げて説明します。
例)出力先がネットワークなら、アクセス出来ない状況の可能性
通信不良やログイン権限の問題
出力先がネットワークであった場合、アクセスできない状況が発生している可能性。
具体的には通信不良や、ログイン権限のない場所に移されたようなケースではこういうことが起きます。
例)出力先が従来と違う可能性
SharePointオンラインやクラウドサーバーなどいろいろ
そして出力先が今までと違う可能性。クラウドサーバーだったり、環境は色々変わったりします。
今まで使っていたところから環境が変わったりする場合に、何らかの理由でアクセスができない、保存ができないというケースが発生します。
例)そもそもPATHが長過ぎ
そして、そもそもパスが長すぎるケース。Windowsでは目的のところまでのパス階層の文字列に上限があるので、ここがあまり長すぎてはいないか?
例)PATHにWindowsで使用できない記号や文字が混在
あとはパスの中に、使用できない記号や文字が混在。これは機種依存であったり、記号ですね。
こういうものがファイル名や、あるいはパスの中に入っていた場合は、それが原因で落ちるということになります。
例)既に同一ファイル名でPDFが存在しており、しかも開いた状態
あとはこれもよくありますね。すでに「同一ファイル名」で「同一な場所」にPDFが存在していて、しかも開いていて書き込みができない状態です。
(今回の)確認ポイントとしては2つ。
1つ目は、「ネットワーク上ではなく、ご自身のローカル環境下だったら出力できるんでしょうか」っていう質問がすぐ出てこないとダメです。
そして2つ目は、「誰のPCからやっても出力できないのか?特定の人だけ失敗するのか?」
このケースは代表的な不具合なんで、(解決までの)期待工数は30分です。
メールを見たら、速攻で(お客様に)電話しますね。そしてエラー箇所を見て、そして確認ポイントは(先ほど挙げた)2つです。
オチなんですけど、もう(この不具合は)解決しています。
お客様と弊社のメンバーがコンタクトを取ったところ、電源が抜かれていたというのが結果的にオチです。
「電源を入れ直して再起動したら、その目的の共有フォルダの中にアクセスができた」ということでした。
こういうような不具合なのかバグなのかっていう定義は、また別の動画でお話をしたいと思いますけど、障害が発生してから解決までは30分以内を目指したいものですね。
これに関しては、経験だったり着眼ポイントだったりというところが必要になってくるんですけど、大体この辺り(疑うポイント)は毎回同じです。
そんなことも今後の動画でお話をしていきたいと思います。
今回の動画の内容は「ExcelVBA実行時エラーそのバグ瞬殺ここを見ろ」でした。
動画のご視聴ありがとうございました。