つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

VBAプログラミング・その後

 <前回>の続きです。
 日曜日にせっせと自宅で作ったExcelマクロが、思ったとおりの動作をしなったのですが、ようやく (まさに本当に、苦労に苦労を重ねて”ようやく”) バグの原因を見つけました。
 シート保護をかけて、手動ではワークシート変更ができない設定にしながら、マクロからはシート変更が自由にできるというコード(・・・VBAマクロを作る方はご存知でしょうが・・・Protect UserInterfaceOnlyっていうコード・・・)があるのですが、このコードを入れるとうまく動かないことが判明しました。

  
 ちょっと専門的になるのですが、 Worksheets(1).Protect UserInterfaceOnly:=True のコードは、マクロからの変更は可能なはず(少なくとも、そういう理念のはず)なのに、マクロからの変更がシートに反映されないというのは、おかしいと言えます。もしかしたら、Excel自体のバグなのではないかと推測されるのですが、これを調べる気力は今のところありません。Microsoft Office製品の関連サイトをくまなく探せば出てくるかもしれませんね・・・・


 原因さえ分かれば回避策を作るのは簡単です。これまでのもモヤモヤがなくなり、気分が一気にスカッとしました。そうです、「モヤッと」が「スッキリ」に変わったのです(伊東四郎さんの番組)。
 これで、この1週間、不完全マクロに付き合ってくれた総務係員に、苦労をかけさせずに済みます。


 デバッグ作業が大変なことは、いろいろなところで紹介されているので、知っているつもりではいました。
 たとえば、大村あつし先生著「かんたんプログラミングExcel2002VBA基礎編」(通称かんプロ)には、
デバッグは、・・・・・複雑な論理エラーが発生してしまうと、その作業は一転して苦痛と困難を伴うものとなります。」(同著148ページから引用)
とあります。
 しかし、バグを見つける作業の大変さを、私はこの度、初めて経験しました。まだまだ修行が足りないな・・・所詮、ホビープログラマーだと、思い知らされました。
 先週1週間は、本社からの事務監査が2日間あり、その対応と、本社から出張してきた監査社員の夜の接待なども重なって、金曜日の夜はヘロヘロになって帰宅しました。その金曜日は、夜9時に眠りに入り、翌土曜日になっても疲れがとれずに、夕方まで丸一日ベッドでごろごろと寝ていました。
「はれう」さんのこと<こちらを参照>を笑える資格はありせん。
(「はれう」さん、またまたごめんなさい。)