Excelの長短
Excelの短所
・余計な型変換。「00001」が「1」に自動的に変換される等。
書式を「文字列」に設定すれば良いのだが、csvの取込時に細工が必要なので不便。
・初期設定のままでは使い物にならない(Wordも同様)
特にオートコンプリートやツールバーの設定が面倒。
・検索しづらい。バイナリで保存されるためGrepが効かない
Grep可能とするためには..
> 全xlsファイルをcsvに変換して検索用フォルダに保管するマクロを書く
> xlsファイルを逐一開いて検索するマクロを書く
・検索に正規表現を使用できない
VBAでは正規表現を使用可。必要であればマクロで解決
・結合セルとオートフィルタの相性が悪い
文字位置を中央に配置する事が目的の場合は、書式設定にて「選択範囲内で中央」を選ぶ
・オートシェイプが検索対象に含まれない
設計書や帳票の雛形としてオートシェイプが多用されている場合、メンテが困難
・行数・列数の制約
行数は65536行、列数は256列までしか扱えない。
多大なデータを処理する場合はAccessの使用を検討する。
・デファクトスタンダード。他に選択肢は無い。
より優れたスプレッドシートの商品が存在したとしても、現状はExcelと格闘せざるを得ない。
・バージョン管理が困難
シート、マクロの双方をテキスト化して管理する仕組みを作る必要がある。
シートを単にcsvに変換するだけだとオートシェイプの情報が残らないので工夫が必要。
・wordには目次を自動生成する機能があるが、Excelには無い
文書の作成を目的としたツールではないため。泥臭くメンテする必要がある。
・リファクタリング機能が無い
変数名の変更等に多大な手間を要する場合がある。構造改善に手間がかかる。
xUnitのようなテスト支援の仕組みも無いため自作する必要あり。
・Excelで作ったツールはExcelがインストールされている環境でなければ使用も閲覧もできない
ブラウザで動作するツールを作った方が汎用性が高い。
「Excel方眼紙」の短所
・長文を入力する場合、メンテナンスの度に改行位置の調整が必要になる
帳票の雛形に難がある。長文入力部分は結合セルや、オートシェイプを使う等の対処が考えられるが、
結合セルはオートフィルタと相性が悪く、オートシェイプは検索の対象にならない。
結合セルが原因でコピー&ペーストが制限されてしまう場合もある。
列の幅・行の高さを変更して1セル内に納めるのがベストだが、方眼のレイアウトを崩してしまう。
→「カメラ」機能を用いる事で、既存のレイアウトを再現しつつ行・列幅を自由に設定したシートを作成可能
Excelの長所
・ピボットテーブルでの集計が便利
データベースとして使用できる形でシートを整備すれば、直感的に集計結果を取得できる。
・オートフィルタでの集計が便利
特定の条件に該当する項目を簡単に抽出できる。
しかしフィルタ条件にも暗黙の型変換が発生するため、想定と違う挙動となる場合があり工夫が必要。
SQLでデータを抽出する事はできないので、複雑性が増した場合は何らかのDBに移行する。
・VBAマクロが万能
AppActive, SendKeysなどを用いれば外部のアプリケーションも操作できるので作業の自動化も可能。
常駐プログラムには向かない。
・解析に適する
多重ネストで読解が困難なソースコードをExcelで解読すると視覚的に把握しやすくなる場合がある。
SQLを分節毎に分解してExcelに貼り付けると対応関係が分かりやすくなる。
・バッチファイル生成が楽
ファイル一覧等から段階的に文字列を編集してバッチファイルを作る事ができる。
・ネット上に情報が多量にある
問題に直面してもネットで検索すれば大概の問題は解決できる。
・ツールを作る場合、条件の列記が楽
「フォームを作り、条件を記載する欄や表を作る」といったレイアウト調整の手間がかからない。
そのままデータベースとして使用できる。
ログの出力もExcel上に日時・詳細を吐き出してしまえば、後はCSVに吐き出すなり自由に編集できる。