ここでは超ひさびさのプログラム話


車輪の再発明ExcelのセルをA1に揃える+αのマクロを書いた - なか日記
<http://blog.nakajix.jp/entry/2016/03/25/100000>


ここのVBA、切望してるところは切望するのだが、オシイことがいくつか。
1つ目は、
いかんせん取扱説明書がない。具体的に言うと、
「xlsmは対象にできない」
このVBA、xlsmと同一ディレクトリ配下のファイルを一括処理させていて、
かつ編集が終わったファイルを上書き保存させている。
そのため自分自身つまりVBAを載せているxlsm自分自身を処理できない。(ファイルを開いているため)

2つ目は、
OneDriveなどのクラウドストレージは対象にできない。もしかすると社内共有に保存しているファイルも
PATHでエラーになる可能性がある。
あくまで「ローカル上に保存しているファイル限定」だということ。


基本は仕様書や設計書などは、xls、xlsx形式ファイルで保存運用することが多いのでマクロ搭載ファイルは
対象としない、という方針(仕様)は間違いではない。
しかしマクロを使って集計していたり、サーバーのログファイルを掻き集めて処理させてるなんてExcel
あるので、xlsmファイルも、つまり自分自身も対象にしたい。
→ これは自分自身を除外して、自分自身とほかのファイルを別処理させればいい。


またOneDriveやDropboxなどのクラウドストレージや、社内共有フォルダ(DAVなど)上のファイルも
対象に処理をさせたい。
→ これも処理分けさせればいい。http*で始まるクラウドストレージと、WebDAVなど社内共有で
  処理分けさせればPrivateSub自体を変える必要はない。


網羅性を求めるなら、
・閲覧限定(読み取り限定)の場合
・パスワードが必要な場合
VBAセキュリティ対応
の対応を含める必要がある。
まあそこまで網羅する必要があるのかどうかは別だけど。

先の1,2の件はクリアさせたほうが使い勝手は良くなる。
網羅性…の3つの部分は、まあパスワードや編集制限がある場合は処理対象から弾く、くらいで
いいんじゃないかと思う。


コード主のブログにもある通り、そもそも「100%、A1、左端シート揃え」論は本当に必要なのかどうか。
多分この考え方って古い時代の名残りで、下請けが元請けに提出する際に心象をよくしたいが為だけに
やり始めたことじゃないか?と思う。

確かに5000行もあるシートの右端で保存されてたらトップに戻る手間はあるが、そんなの
CTRL+HOMEで一発移動、ブック内の左端シートはCTRL+PageUpで簡単に移動できるんだしさw 
100%一発表示は独自ショートカット作らないとダメとは思うが、リボンメニューやクイックアクセスツールバー
に登録しておけばボタン1つで100%にできる。手間は手間でも惜しむ時間というレベルじゃない。


公開されたコードで個人的に関心?したのは、ちゃんとPrivateにしてメインで一括処理させてる点かな。
この程度のコードなら1つのSUBプロシージャにしていいと思うんだけど、そこをちゃんとPrivateに小分けして
オブジェクト指向よろしくな感じで作っているのはメンテナンス性がいいよね。
クラスにしてもいいんだけど、そこはこの程度のレベルならクラスにしなくてもいいんじゃね?レベルかな。
いろいろ考えさせられたブログ記事だと思う。