[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[610] 定型表にCSVを落とし込む

ひろさだ [2021/02/28 17:09:27]

お世話になります。ネットにあるファイルをダウンロードするとCSVファイルがダウンロードされます。行は変動しますが20ほど、列は10程度です。あらかじめ定型表を作っておき、そこに10ある列の7つほどを落とし込みたいのですが、マクロを使えるエクセルを持っていません。あらかじめ行のタイトル名を入れておいて、ダウンロードしたあと、そのファイルをクリックすると決められた表に落とし込み、印刷できるようにはできませんか?よろしくお願いいたします。

Re: [610] 定型表にCSVを落とし込む

あすかぜ [2021/03/01 20:14:26]

返信が遅くなってしまいすみません。

Cassava Editor にはマクロ機能があるので、データの整形等を自動化することはできると思います。
開発版で列の移動・列の削除等を「マクロの記録」で記録する機能を開発中なので、試してみてください。
https://www.asukaze.net/soft/cassava/history/2_3dev.html

マクロを記録する手順は次のようになります。
1. [マクロ(M)]-[マクロの記録] メニューを実行する
2. 列の移動・列の削除等の操作をする
3. [ファイル(F)]-[エクスポート(T)...] メニューで「記録したマクロ.CMS 形式 (*.CMS)」を選択してエクスポートする
4. 保存したマクロを Cassava Editor の「Macro」フォルダに置く

「Macro」フォルダに置いたマクロは、[マクロ(M)] メニュー内に表示されます。
ファイルのクリックのみで処理を開始したい場合は、ファイル名を「!open.cms」とすることで、ファイルを開くたびに自動的にマクロが実行されます。

印刷はマクロの記録では記録されないので、マクロファイルをテキストエディタで編集して「Print();」という命令を追加してください。
ただし、今のところ、印刷ダイアログ内の設定等はマクロでは操作できません。
手作業で設定をして「印刷(P)...」ボタンをクリックする必要があります。すみません。

その他マクロの動作についてはこちらを参照してください:
https://www.asukaze.net/soft/cassava/help/macro.html

より具体的な質問等があればお知らせください。
よろしくお願いします。

Re: [610] 定型表にCSVを落とし込む

ひろさだ [2021/03/02 22:25:25]

あすかぜ様 早速のご回答ありがとうございます。三つほど質問があります。
>CSVファイルのクリックのみで処理を開始したい場合は、ファイル名を「!open.cms」とすることで、ファイルを開くたびに自動的にマクロが実行されます。
については、画面で表示されているCSVファイルのところをクリックすればマクロが実行できるのでしょうか?
>「Print();」という命令を追加してください。
了解しました。やってみます。

あと、列を削除するコマンドはわかりましたが挿入のコマンドはどういうモノでしょうか?
そして文字が000056789とかいったものについては56,789としたいのですがこれのコマンドと言うか、関数がわかりません。
よろしくお願いします。

Re: [610] 定型表にCSVを落とし込む

あすかぜ [2021/03/03 19:55:54]

「!open.cms」は Cassava Editor でファイルを開いた時に実行されます。
CSV ファイルのダブルクリックで Cassava Editor を開くようにするには、関連付けを設定してください。
CSV ファイルを右クリックして [プログラムから開く]-[別のプログラムを選択] をクリックし、Cassava Editor を選択して「常にこのアプリを使って .csv ファイルを開く」にチェックをして「OK」ボタンをクリックすることで、CSV ファイルのダブルクリックで Cassava Editor が起動するようになると思います。

列を挿入するコマンドは InsertCol(列番号); もしくは InsertCol(列番号, 列番号); です。
列の挿入はマクロの記録でも記録されると思います。
その他利用できるコマンドの一覧はこちらを参照してください:
https://www.asukaze.net/soft/cassava/help/macroref.html

000056789 を 56,789 に変換するには、マクロで
ReplaceAll("^0+", "", false, false, true);
を実行して頭の「0」を削除した上で、オプション設定で数値を 3 桁区切りにするのがよいと思います。
1. [オプション(O)]-[オプション(O)...] メニューでオプションダイアログを開く
2. 左側のツリーで「表示」を選択
3. 「表示オプション」内の「数値を 3 桁区切り表示」にチェック
4. 「OK」ボタンをクリックする

よろしくお願いします。

Re: [610] 定型表にCSVを落とし込む

ひろさだ [2021/03/04 02:12:15]

あすかぜ様 いつもありがとうございます。あとひとつ、列を追加して備考欄のようなものを作りたいのですが、右端の列をマウスでひっぱっても、印刷してみたら思うようにいきません。何か空白のスペースをいれるのかと思いましたがそうでもないようです。全角にして20桁くらいある列を追加するにはどうすればいいのでしょうか?InsertCol(列番号); をしてみましたが、幅がありません。よろしくお願いいたします。

Re: [610] 定型表にCSVを落とし込む

ひろさだ [2021/03/04 18:10:39]

あすかぜ様 お忙しいところありがとうございます。あと一つお教えください。既存の列(たとえば4番)に空白の列を作るにはinscol()か、replaceall()を使うのでしょうか?空白は10桁くらいを考えています。できれば()の中も例示をよろしくお願いします。

Re: [610] 定型表にCSVを落とし込む

あすかぜ [2021/03/04 19:32:59]

印刷時の列の幅はデータに応じて自動調整されます。
全角20桁の幅の列を印刷するには、実際に20文字の空白を入力してください。

[列番号,1] = "                    ";

既存の列に空白の列を作るには、列を削除して挿入するのがよさそうです。

DeleteCol(4);
InsertCol(4);
[4,1] = "          ";

試してみてください。

Re: [610] 定型表にCSVを落とし込む

ひろさだ [2021/03/06 14:18:02]

あすかぜ様 何度もありがとうございます。以下のマクロを追加してみました。
DeleteCol(4);
InsertCol(4);
[4。1] = "          ";
。は半角カンマです。
3、4、5列を削除してまではいいのですがですが、どうしても目的の空白数の列ができません。
もともと列6は備考という項目名だったのですが、
できればその備考も入っているようにしたいのですが。

よろしくお願いします。

Re: [610] 定型表にCSVを落とし込む

ひろさだ [2021/03/06 14:32:58]

あすかぜ様 何度もすみません。
印刷したらできました。ありがとうございます。

Re: [610] 定型表にCSVを落とし込む

あすかぜ [2021/03/06 16:38:47]

解決済みのようでよかったです。

なお、印刷前の表示で列幅を反映させるには Refresh(); を実行してください。
「備考」という項目名を1行目に入れるには、[列番号,1] = "備考"; としてください。

DeleteCol(6);
InsertCol(6);
[6,1] = "備考";
[6,2] = "          ";
Refresh();

ご参考まで。

スレッド一覧に戻る返信