パソコン・インターネット

2018年4月19日 (木)

CSVEX (VBA)をリリース & vbTextCompareとvbBinaryCompare

昨日、CSVEX (VBA)をリリースしました。
http://egotadp.biz/products/CSVEX/index.htm

CSVファイルをExcelのシートに貼り付けるツールです。
シフトJISとUTF-8、LfとCrLfに対応しています。
Windows7(32)+Excel2010(32)とWindows10(64)+Excel2010(64)で確認しています。

Csvex_ss_50pc


###

ところで、なかでInstr関数やSplit関数を使っているのですが、文字列の比較の方法を指定するパラメタがあります。これまで、特に考えなしにvbTextCompareを使っていたんですが、大量データでテストしていたら、なぜか途中でずれる。

▼使ったデータ
事業所の個別郵便番号データ (郵便局)

ずれる箇所はすぐ特定できました。200行目の「北海道いすゞ自動車」です。

Img035_50pc

どうも踊り字の「ゞ」が原因のようです。文字列の比較の方法の違いは読んだことがあったのですが、

・vbTextCompare:「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別しない。

・vbBinaryCompare:「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別する。

区別するもしないも、何番目に出現するのか、で何を区別するの? とおもって「する」より「しない」ほうが、多少は効率がいいんではないの? ぐらいの気持ちで前者を使ってました。

ところが、上図のように実験してみると、

20180419_192029

のように、違いが出ました。「ゞ」は、見た目は全角の文字です。

20180419_191605

シフトJISなら0x8155、内部ではUnicodeで処理されているはずですが、その場合もU+309E。半角と全角を区別するも何もないはずです。試しに「ゝ」で試してみると、

20180419_192137

こちらは違いが出ない。

原因はわからないのですが、vbTextCompareだと「ゞ」を「ゝ」+「゛」の2文字分カウントとしているようです。なぜだ。

であれば「ズ」(全角1文字)や「ズ」(半角2文字)でも違いが出るような気がするのですが、出ません。同じ踊り字の「ヾ」も「ヽ」+「゛」の2文字分カウントされてます。

まあ、vbBinaryCompareを指定すれば何ら問題ないので、解決なんですが、どういうことなんでしょう。

2018年4月 9日 (月)

ココログの本文への画像貼り付けを自動化

ココログ(このブログ)に画像ファイルを貼り付けるのは、数のような手順でやります。数が多くなると結構面倒。

[イメージを挿入]→[参照]→[ファイルを選択]→[開く]→[画像の挿入]

20180408_kokoupss


この一連の操作を、いまはやりのRPAで自動化することにしました。

うそです。Excel VBAです(^◇^;)

フォルダを指定して上のボタンを押す
→フォルダにあるファイルの一覧が表示される
→貼り付けたくないファイルがあれば削除
→下のボタンを押す。

20180408_7

すると、かっちゃこん、かっちゃこん、と順にファイルを貼り付けていきます(動画)。

ソース自体は200行程度なんですが、とにかく正解がないから試行錯誤。丸一日かかりました。シンプルなHTMLならスムーズに行きそうだけど、JavaScriptとか、ちょっと変わったコントロールが使われてると、つらい。

2017年12月20日 (水)

CDMDL for Windows Version 4.3をリリースしました

20171220


クレジットカード番号のチェックディジットを計算する機能を追加しました。また、全般に計算式の表現を改善しました。

ずいぶん前に実装していたのですが、どういうわけかコメントアウトしてました。なんでだろう?

ダウンロードはこちらから。
http://egotadp.biz/products/CDMDL/index.htm

2017年10月 2日 (月)

Excelのセルのスタイルが削除できない - Clean XLS 1.2.7をリリースしました

拙作、Clean XLSはVersion 1.2で、セルのスタイル、セルの名前を一括して削除する機能を追加しました。Excelのブックを使い続けているうち、セルのスタイルやセルの名前が知らないうちに増えていって、上限を超えるとシートのコピーや移動ができなくなったりする、といったトラブルに対応するためです。

Excel 2010では、セルのスタイルの上限は64000とされていますが、実際にはもう少し多いです。

Excelの仕様および制限
https://support.office.com/ja-jp/article/Excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%8A%E3%82%88%E3%81%B3%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3#ID0EBABAAA=Excel_2010

ところが、セルのスタイルの定義が、何かのトラブルで壊れてしまっているものがあると、手動でも削除することができません。

Sc_201710021011241_20

画面をスマホで撮影したものなので見にくいですが、スタイルの名称が文字化けしていたりします。

Version 1.2で上記のようなものを含むブックを処理した場合、処理が停止してしまう不具合があることが判明しました。参考にしたVBAでは、特に明示しなくてもエラーを無視して処理を続行するようになっていたので、同様のロジックにしていたのですが、VBの場合はエラーを無視するロジックを明示的に入れておかなければならないようです。Version 1.2.7でそのように対応しました。

Cleanxls127_ss


http://egotadp.biz/products/cleanXls/index.htm

###

では、手動でもマクロ(VBA)でも削除できないセルのスタイルは、どうやったら消せるのでしょうか? ・・・と検索していたら、このような記事に突き当たりました。

Excelの呪い 消せないスタイルと外部リンクの強制削除|ありふれた日記
<https://ameblo.jp/iwashi2017/entry-12209217915.html>

いやー、xlsxやxlsmの実体がZIPファイルとは知りませんでした。この件だけでなく、いろいろ応用できそうです。いろいろ試してみたいと思ってます。



2017年9月20日 (水)

DP Compare Version 2.0をリリースしました

テキスト・ファイルを比較するツールです。

20170917_1


差異があるところを、「?」で示します。

20170917

メインフレームの経験者の方ならご存じと思われる、あのリストに似せて作りました。比較の結果はシフトJISのテキスト・ファイルで出力しますが、そのままA4横で印刷できるはずです。

このツール、2006年にVB6で作成してそのままでした。少し前にVB6で作ったプログラムは公開を停止したので、お蔵になってたものです。

今回、テキストの比較ができて、印刷がしやすいもの、というリクエストがあったので、復活。ただ、UTF-8のテキストを扱うということ。VB6でUTF-8のテキスト・ファイルを1レコードずつ処理するのは、ちょっと難儀。そのため、UTF-8のファイルを扱う場合には、ファイルを丸ごとシフトJISに変換して、これを従来のロジックにつなげるようにしています(横着)。

あと、VB6のプログラムをWindows 7や10で動かすと、フォームの文字が化けたり、思うように表示されなかったりしますが、これも対策しました。

特に、VB6固有のコントロールを使用しているわけではないので、VB6ランタイムをインストールしていない環境でも問題なく動作するはずです。

DP-Compare Version 2.0
http://egotadp.biz/products/dpCompare/index.htm

2017年8月29日 (火)

CHGHEX Version 5.3をリリース

文字列と各種の文字コードを相互に変換するツール、CHGHEXの新しいバージョンを、1年余ぶりにリリースしました。変換する文字コードはこれまで、シフトJIS、EBCDIC、JEF、UTF-8、Unicodeに加え、JISに対応しました。

20170829

JISは、1バイトコードと2バイトコードや半角カタカナの切替をシフトコードを挟むことで実現していますが、CHGHEXではEBCDICやJEFと同様、シフトコードを扱っていません(あくまで文字とコードの変換を簡易に参照できるようにするために)。したがって、半角の文字が連続している場合や、半角と全角が混在している場合は、正しく返還されない場合があります(全角として認識することを優先)。

ダウンロードはこちらから。

http://egotadp.biz/products/CHGHEX/index.htm

2017年8月 7日 (月)

FUBAKO Version 1.3をリリース

クリップボードを監視して、変化があったら即、テキスト・ファイル、イメージ/ファイルに出力するツール、FUBAKO Version 1.3 をリリースしました。

http://egotadp.biz/products/FUBAKO/index.htm

###

基本の機能はこれまで通りですが、ファイルを書き出したときに、バルーンヘルプを表示することができるようになりました。

下図は、Windows7の例です。Windows7のバルーンは、さほど圧迫感は感じませんが、Windows10だと、かなり派手な表示になりますので、ちょっと躊躇するところ。

20170807_130918

ちなみに、バルーンをクリックすると、あらかじめ設定されている保存フォルダを開きます。

20170807_1_50

###

あと、通知領域のFUBAKOのアイコンを右クリックしたときに表示されるメニューからも、保存フォルダを開くことができるようにしました。

20170807_131510








2017年7月 7日 (金)

CleanXLS Version 1.2をリリースしました

CleanXLS Version 1.2をリリースしました。

20170707_2

CleanXLSは、Excelのシートの体裁~~~フォントの種類や大きさ、カーソルの位置、表示の倍率などを、一括して設定するツールです。適用するブックは、フォルダを指定するかドラッグアンドドロップで指定します。

今回追加したのは、ユーザー設定のスタイル(セルの書式)とセル範囲の名前の定義を一括して削除する機能です。

前者は、Excelの仕様の上限を超えて登録された場合、ブックの保存やシートのコピー・移動などに支障が発生した際に、後者は、名前の一覧に表示されない定義を削除することができないため、シートのコピー・移動などに支障が発生した際に、それらを回避するためのものです。

ただし、実際に使用されているスタイルや名前の定義を含め、一律に削除してしまうため、これらの機能を使用している場合には注意が必要です。(処理を開始するときに警告のメッセージを表示します。)

CleanXLSは、こちらのページで公開しています。
http://egotadp.biz/products/cleanXls/index.htm

###

なお、上記のような現象については、すでにわかりやすい記事が多数公開されています。

Excel-名前の管理を削除する
http://capm-network.com/?tag=Excel-%E5%90%8D%E5%89%8D%E3%81%AE%E7%AE%A1%E7%90%86%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B

Excelファイル内に勝手に増殖したセルの書式をまとめて削除する方法
http://qiita.com/hkuno/items/87f06368855a9e72b0fe

2017年6月26日 (月)

URL Decoder Version 2.0をリリースしました

もともとMicrosoft SharePointの冗長な、かつ、フォルダ名に漢字を含む場合UTF-8にエンコードされてしまってさらに冗長になってしまうURLを、メールで案内するときや、サーバ上の移転先を捜索する手がかりとするために作ったものです。

ところが、肝心のSharePointのURLを短縮するのに、どこを残してどこを消せばよいかがわからず、適当にお茶を濁していましたが、利用者の方から情報提供があり、実装することができました。

20170625

ついでに、借り物だったアイコンをオリジナルのものに置換え、また、ウィンドウの位置を記憶するようにしました。

Iconurldcode_120x120_2


http://egotadp.biz/products/URLDCode/index.htm

###

なお、FUBAKOも微細な改善を実施しました。

http://egotadp.biz/products/FUBAKO/index.htm

2017年6月18日 (日)

USB温湿度ロガーでSendKeys挫折

今月の買い物は、USB温湿度ロガー。

私の作業部屋兼寝室は、フェレット部屋でもあり、猫部屋です。猫は概ね常温で問題ないのですが、フェレットは25度程度をキープしておく必要があり、先週あたりから時々エアコンを稼働させています。

無人のときもつけっぱなしになるわけですが、省エネ・節電は抜きにしても室温の状況は知りたいと思っていたのですが、こういうものが安く手に入るんですね。

Dsc_0102_50

http://amzn.asia/dLV8D04

使用開始時点ではPCにつなぐ必要がありますが、設定が済んでしまえばつながなくても記録してくれます。設定とデータの吸い出しはUSB経由です。

データを取り込むと、こんな感じに。

20170618_1_50

このソフトは無償なんですが、ログをメールで送信する機能もあります。

・・・であれば! n分おきに自動でログを吸い出してメールを送信する機能があってもよくない!? と思ったのですが、それはなし。

ならば、SendKeysで操作してとおもって試行錯誤してみたのですが・・・

20170618

・・・どうもSendKeysを受け付けないようになっているようで、結果、挫折しました。当該のウィンドウをアクティブにするところまではうまくいくんですが、SendKeysがうんともすんとも言わない。ソフトがMDIだからか?

ということで、作成予定のツールは、上図のように試作段階で捨て置くことになりました。

専用ソフトを使わず、直接デバイスにアクセスして・・・なんてことも考えなくはないのですが。USBシリアル・インタフェースのようなので、ATコマンドでどうにかしてるか、と想像してみるのですが、コマンドが公開されているわけでもなく、ちょっと荷が重い。

マニュアルは英語のみ。ソフトも、どうも作りが雑なところが気になるのですが、すでに利用されている方のレポートが大変参考になりました。

温度を記録する RC-4 温度ロガーの使い方
http://reviews.f-tools.net/Atusa-taisaku/Ondo-Kiroku-Logger.html

ひららプロジェクト
http://hirara.jp/HIRARAIT/usbloger/dataloger.html

温度と湿度を記録できる温湿度データロガー RC-4HC
http://tech-review.click/temperature-data-logger

無料ブログはココログ

最近のツイート