2017年8月29日火曜日

数値に関するライブラリ

数値に関するライブラリ、いろいろありましたので簡単にまとめます。
  • numerial.js 数値データの加工が簡単に
    • http://numeraljs.com/
    • 次のようにすると、 stringに 1,000 という結果が入る
      • var string = numeral(1000).format('0,0');  // 1,000
    •  あとは、1st,2ndのような表現も何も考えずに正しい結果が手に入る
      • var string = numerial(1).fortam('Oo');  // 1st
  • math.js より高度な数値の加工・計算・単位変換など
    • http://mathjs.org/
    • いろいろできますが、個人的に使えそうだと思ったのは下記
      • 数式処理
        • var string = math.simplify("2x * 3x");  // 6 * x ^ 2
      • 桁数を指定した数値の丸め(下の例だと、3.14が手に入る)
        • var string = math.round(3.141592,2);  // 3.14
      • 単位変換

  • moments.js 時間に特化した加工・計算ライブラリ
    • https://momentjs.com/
    • 時間に関して、計算・表示形式の変換・単位変換など
    • 相対表示("~分前")なども可能。
    • 日本語もmoment-with-locales.min.jsで対応

2017年8月4日金曜日

VBA 実行時エラー'1004'が発生する

VBAでコピーして貼り付けを実行しようとすると、実行時エラー'1004'が発生する際の解決方法

---
実行時エラー'1004'が発生します。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9/63090c23-3e6c-4855-80c5-d9e8684972c8

この質問の一番下の回答で解決。簡単にまとめると、

  • CopyのあとDo Eventsを使う
  • Do EventsのあとSleepを入れる
  • それでもエラーが出る場合は、On Errorで例外処理を記述する。

なお、このSleepの書き方では64bitのコンピュータで実行すると怒られるので、下記のように記述する必要がある。

Sleep Lib “kernel32” gives 64-bit systems error
https://stackoverflow.com/questions/41638504/sleep-lib-kernel32-gives-64-bit-systems-error