#気まぐれ & 気まま & 天邪鬼な老いぼれ技術屋の日々の記録のうち、パソコン技術やインターネット技術、プリンタやPCアプリからプログラム言語などに関連した記事です。
右端上端の同一カテゴリージャンプボタンで同じカテゴリーの他の記事を順番にご覧いただけます。
Access Counter:  総アクセス数

楽 天 の 商 品

-2083- EXCELのシート数
= 今日は画像なし m(_ _)m =
はるか昔の亡霊のような問題が明らかに!
もう10年近く前に依頼されて作成した Excel VBAのマクロプログラムが、エラーで動かないと連絡を昨日もらった。年中行事ではないが、1年に一度くらいの頻度で「出来ない、エラーが・・・・」とヘルプの電話がかかってくる。
元のマクロは私の HPを見た人が「知り合いに Excelの操作で困っている人がいるけど、何とか出来ないか?」と相談してきたものだった。電話では要領を得ないので、東京の反対側まで出かけて話を聞くと、1ヶ月に数万枚のハガキの宛名印刷を受注したんだが、発注元の全国各拠点からバラバラにくる Excelの顧客データを2-3列の項目順に並べ替えたり、データ抜けなどの簡単なチェックをした後で、ハガキの宛名印刷用データを作成して別の印刷所に発注して、納品されたら4面シートを裁断しているという。高度成長期は結構な設備投資をして従業員も結構いた様子だが、今はほとんど家内工業的な会社で、Excelの事は全く知らない社長が金額に釣られて気軽に受注してきたが実際の作業は 何とか Excelの使える奥さんに丸投げで、データー受領からハガキ納入までの半月ほどは奥さんが食事時間以外 PC画面と睨めっこで、それでも納期が迫ると寝る時間も削られるから精神的にも肉体的にも「もう限界!」と悲壮な状況。
まぁ、私にとっては Excelのマクロプログラムはある程度時間はかかるが、スキルとしては不足はないし、根が好きだから、作業ロジックに矛盾がないなら「人助けになるなら一肌脱ぐか」と言う気になって、1ヶ月間くらいの作業期間を想定して費用の見積もりをした。
結果、想像通り奥さんの話が不十分だったり、途中で仕様の変更を言い出されたりしたこともあり見積もり期間は超えたが、実質半日ずつも作業時間はとれない中それでも 2ヶ月近くかけて、元の Excelブックから処理用のブックにシートごとデータを転記して、並べ替えや項目チェック、4面ハガキ用紙の印刷画面テンプレートへの転記など一連の処理を完成させた。プログラムのコードサイズは大体予想通りで、エラー対応やログ記録含めてデーター処理部分が 1千行程度、印刷データ作成がその 1/3程度だった。途中、話の中で外部の印刷所に印刷依頼しているが、プライバシーシールを貼るためのハガキ4面用紙がレーザープリンタの熱で反ってしまい、平面に直すために揃え直して重しして放置・・・・という話を聞いて、それなら業務用インクジェットの方が非加熱で向いているし、プリンタも10万円程度だから内製化も可能になる・・・とアドバイスした。おそらくこの印刷内製化だけでも 10万円/月程度のコストダウン+やり取りの期間短縮と言うオマケ付き。奥さんからは「自動化出来て、作業時間はトータルでもわずか数時間足らずになったしミスしないようにと言うストレスから開放された。やっと元の家事も出来るようになった」とえらく感謝された。
さて、今回のエラーの相談の話に戻って、今までのエラーの相談は大方がデーター提出元が決められたフォーマットの Excelテンプレートを使っていなかったり、Excelそのものの操作方法間違いだったり、奥さんの勘違いだったり・・・とプログラム責のない軽微なものだったが、今回は PCを更新したらエラーになったという。想像できる問題は実行ファイルやデーターファイルのフォルダー名が違っているんだろうと言うことで、こちらは即解決。(ちゃんと最初に詳しい設定マニュアルを渡してあるのに読んでいない @怒) しかしそこを設定し直しても別のエラーが消えない、と言う。LINEの TV電話で画面を見ると「エラー9:インデックスが有効範囲にありません」だから、どうも VBAそのもののエラーのようで、ちょっとドキッとした。が電話を切ってから落ち着いて考えると、新しいPCということは Excelも最新版だろうから Excelのバージョンの違いだろうと目星をつけた。
私が マクロコードを書いたのは Excel2007で、時期的に Excel2010まではチェックしているが当時それ以降のバージョンは存在もしていなかった。で Excel バージョンなどでググると、どうやら Addでブックを新規作成した場合、2010まではシートが 3枚作成されたものが、2013からはデフォルトでは 1枚しか作成されないらしい。だから新規作成したブックの 2枚め以降のシートへの転記などの処理をしようとすると存在しないオプジェクトへの処理になってしまい「インデックスの有効範囲」外と見なされるんだろう。早速事務所の去年導入した PCで問題の Excelマクロを走らせてみるとエラーが再現した。再現すればこっちのもの。「ファイル」>「オプション」で表示される図の「Excelのオプション」設定でもエラーは解消されるが、また新しい PCに載せ替えなんてこともあるかも知れないので、念の為新規作成ブックのシート数を3に設定する一行を追加してチョン、めでたしめでたし。
しかし、あちらは ハガキ1枚につき少なくとも 3-5円程度は利益があるはずで、枚数からすれば月ン十万円以上の利益!・・・・ 月額サポート契約にしておけば良かった 涙;;;
2019/07/24