Excelでシステムを作ろう
世の中にはExcelより優れたシステムを構築できるエンジニアは多くいますが、Excelしか支給されていない、予算が無い 、複雑なシステムを組む段階ではない等の事情でExcelしか使えない現場も多くあるのが事実です。そこでデータ入力、抜き差し印刷などよく使用されそうなマクロを Windows、Mac両OS上のExcelで使用できる様に開発したのが、FormeStudioです。
5つのメリット
メリット1 : 既存の資産の有効活用
以前、"紙Excel"という言葉がインターネット上で議論を巻き起こしましたが、 議論があるせよ印刷専用に作成されたExcelは資産であることに変わりはありません。 FormeStudioはそれらを活用する事ができます。
メリット2 : データとシステムの分離
紙からExcelへのデータ入力で問題なのは、多くの場合データとシステムがごちゃ混ぜになっている点でしょう。 別のシステムでデータを再利用しようとしても、データの前処理に手間取る可能性があります。 FormeStudioではデータはすべてCSVデータとして、バックアップフォルダへ移動します。 また、フォルダの自動監視機能が付いているのでマスターシートとしての運用に適しています。
メリット3 : マクロ、VBA管理
Excelのマクロ、VBAは業務改善に大きな効果を発揮しますがメンテナンスがしづらい、 引き継ぎが現実的にできないなどの問題を抱えています。FormeStudioですはベースとなるマクロを外部管理をし、 指定したVBAプログラマーのみにベースの上でプログラミングをさせる事で管理を容易にします。最悪、引き継ぎがうまく行かなくても ベース機能まで失われることはありません。
メリット4 : 多様性と学習補佐
FormeStudioはWindows,Mac両方のExcelは勿論、フリーの表計算ソフトであるLibreOffice Calcにも対応しており、
選択肢が大きく増えます。また、Googleスプレッドシート向けにはコードとスプレッドシートを公開しています。
国際化対策の一環として日本語環境以外ではラベルが英語に切り替わるようになっています。
Windows版Excel限定ですが、VBAのサンプルコードや技術情報が必要な方には有料のアフターサービスも用意されています。
現在、停止中です。
メリット5 : MITライセンス
FormeStudioはMITライセンスです。その為、改変・配布が自由にできます。
・・・
使用例を見る。(旧FormeCollector2)FormeStudio
最大1350文字までの独自連結QRコード作成やForMeにフォーム、ToDoなどの設定やForMeのCSVデータを集約するのに適したマクロシートです。フォルダを指定し、キーワードを 指定するだけで関連するCSVデータを一つのテーブルにまとめます。
テーブルのオートフィルター機能と連動した抜き差し印刷機能や値を表示する機能が付いています。
すでに作成された文書フォーマットシートに印刷メニューや関数を挿入する方法なので既存の資産が有効に活用できます。
(注意:FormeStudio上に文書フォーマットシートをコピーする必要があります。)
対応
Excel 2013,Excel 2016,Excel 2019,Excel 2011 for Mac,Excel 2016 for Mac,Excel 2019 for Mac
Excel version16以降
LibreOffice Calc(6.2.6.2以降)
Google スプレッドシート (コード及び実装例のみ。実装例はコピーして自由に利用することが可能です。)
Shift_jis,UTF-16,UTF-8
CSVデータ読み込み制限
- Windows : 3MB
- Excel 2011 for Mac : 1MB
- Excel 2016 for Mac : 20KB
- Excel 2019 for Mac : 1MB(Ver2.1)
- LibreOffice Calc : 15KB
1800000セル
Excel 2010 でも使用環境により対応できる可能性があります。問い合わせ
LibreOfficeではCSV読み込み文字コードはOS標準のみとなります。
参考
FormeSurveyで出力されたCSVデータ(150B)40データを展開する時間
- Excel 2013(Fusion Windows8.1) : 0'07.75
- Excel 2011 for Mac(Macbook Air late 2012) : 0'09.85
- Excel 2016 for Mac(iMac mid 2011) : 1'20.25
注意
Excel for Mac では日本語の入ったパスは処理できない場合があります。
頭文字の0は省略されます。書式設定で補完してください。"001A" > "1A"
CSVデータベースを使用の際は使用環境が変わるごとにパスの再設定をしてください。
Excel 2016 for Mac,Excel 2019 for Macではスクリプトファイルを ~/Library/Application Scripts/com.microsoft.Excel/に移動する必要があります。 すでにcom.microsoft.Excelフォルダが存在する場合は中のスクリプトファイルのみ移動して下さい。 フォルダが存在しない場合は作成するか、以下のアシストツールをお使いください。
スクリプトファイルをインストールする為のアシストツールを用意しました。 (警告が出る場合があります。その場合はコンテキストメニューから開いてください。)
スクリプトファイル保存先
Finder > 移動(option) > Library > Application Scripts > com.microsoft.Excel
機能紹介
-
CSVデータシート追加
選択したCSVデータを新しいシートに展開します。
- 1.CSVデータを選択
- 2.新しいシートのテーブルに展開
-
CSVフォルダシート追加
同一フォルダ内にある選択したCSVデータの名前の一部と一致したCSVデータを新しいシートに展開します。
"_"で区切った先頭文字列と一致したCSVデータを展開します。"AAA_123.csv" であれば、 "AAA"が一致したCSVデータを展開します。
- 1.CSVデータを選択
- 2.新しいシートのテーブルに展開
-
CSVデータベースシート追加
同一フォルダ内にある選択したCSVデータの名前の一部と一致したCSVデータを新しいシートに展開し、 バックアップフォルダへ移動します。シート上のボタンで自動的に選択フォルダを監視できます。自動監視も可能です。
"_"で区切った先頭文字列と一致したCSVデータを展開します。"AAA_123.csv" であれば、 "AAA"が一致したCSVデータを展開します。
formeCSVmodule Ver6からヘッダー行を一致させることで、ヘッダー行のあるCSVデータでも取り込めるようになりました。
- 1.CSVデータを選択
- 2.バックアップフォルダを選択
- 3.新しいシートのテーブルに展開
-
ファイルの監視
CSVデータベースシートを更新します。
-
CSVデータ貼り付け
選択したCSVデータをアクティブセルに展開します。
- 1.貼り付け先のセルを選択
- 2.CSVデータを選択
-
エクスポート
アクティブシートがFormeStudioが作成したシートの場合はデフォルトコードでテーブルを選択フォルダにCSVデータとしてエクスポートします。 Excel 2016以降ではUTF-8、未満の場合はデフォルトコードでシート全体をCSVデータとしてエクスポートします。(常に上書きされます。)
-
FormeQRCoderを起動
FormeQRCoderを起動します。Excel 2016以降ではブックと同一パスにFormeQRCoder.htmlが存在すると自動接続されます。
-
印刷メニュー追加
印刷用のシートに印刷メニューを追加します。
- 1.参照テーブルのあるシートをアクティブにする。
- 2.印刷メニューをクリックする。
- 3.選択セルダイアログで印刷用シートのメニューを追加するセルを選択する。
-
CSVデータパス取得
選択したCSVデータパスをアクティブセルに展開します。
-
フォルダパス取得
選択したフォルダーパスをアクティブセルに展開します。
-
データ名取得
選択したデータ名をアクティブセルに展開します。フォルダパスが入力されているセルではフォルダ以下のファイル名が列挙されます。
-
現在時刻取得
現在時刻をアクティブセルに展開します。
-
A1を選択
すべてのシートでA1を選択します。
-
プロジェクトロック解除コード
FormeStudioのプロジェクトロックを解除するコードを取得する為に必要です。
ForMeの Throwawaykey Ver2.0以上が必要です。
- 1.表示されているコードをThrowawaykeyに入力し、暗号文を作成
- 2.暗号文をパソコンに送付
- 3.パソコン上でthrowawaykey.txtを選択
- 4.Throwawaykeyに表示されているPINコードを入力
- 5.プロジェクトロック解除コードを表示されるので、VBAEditorでコードを入力してロック解除
Excel 2016,2019 for Mac VBA
Excel 2016,2019 for Mac の VBA は大きく制限を受けています。 FormeCollectorのスクリプトファイルを使用する事で機能の補完が出来ます。
- FormeGetFiles : フォルダ内の可視ファイル名を全取得
- FormeFolderChooser : フォルダパスを取得
- FormeGetFileSize : 指定したファイルパスのサイズを取得
- FormeLoadTxtD : テキストファイルを読み込み
- FormeLoadTxt16 : UTF16テキストファイルを読み込み
- FormeLoadTxt8 : UTF8テキストファイルを読み込み
- FormeFileMove : ファイルを移動する。"ファイルパス,フォルダパス"を引数とする
すべて失敗すると"false"が返ってきます。
・・・
データ入力の時間を解析やプレゼンの時間に変えましょう。