2017年11月21日火曜日

Firefoxで非表示の iframeに対する getComputedStyle が null を返す

getComputedStyle が null を返す - 地獄のネコブログ
http://anekos.hatenablog.com/entry/20100516/1273953156

Firefoxで非表示のiframeに対してgetComputedStyleを使おうとすると、nullが返ってきて例外発生で止まってしまう。

Captivateで出力したHTMLをiframeに入れdisplay:noneにしておいて、moduleReadyEventが来たら表示させようとすると、CPM.jsで止まった。

2017年10月31日火曜日

JavaScriptでディープコピー

https://qiita.com/knhr__/items/d7de463bf9013d5d3dc0
Date型を扱わないのであれば、1つ目のJSONでよいかと思う。

ディープコピーとは?
http://kurochan-note.hatenablog.jp/entry/20110316/1300267023
JavaScriptで配列やオブジェクトを = で代入しようとすると、シャローコピーになってしまうので注意。知らないとハマる!

2017年10月30日月曜日

ページ読み込み中にローディング

http://gimmicklog.main.jp/jquery/278/
読み込みに時間がかかるときに、ブラウザならローディング中がわかるけど、Cordovaで囲むとわからないので、いれるほうが親切そう。

2017年10月27日金曜日

PowerPointのノートの文字サイズを一括で変更

iSpringでノートの文字表示するとき、文字サイズが反映されるので、一括変更するのが便利。

VBAスクリプト(すべて18ptにする)

Public Sub SetNoteFontSize()
    Dim objSld As Slide
    Dim objFont As Object
    Dim intFontSize As Integer
    For Each objSld In ActivePresentation.Slides
        Set objFont = objSld.NotesPage.Shapes.Placeholders(2). _
                        TextFrame.TextRange.Font
        objFont.Size = 18
    Next
End Sub


参考
http://nasunoblog.blogspot.jp/2014/05/powerpoint-vba-note-pane-font-size-change.html
この記事内の'が1か所全角になっていて、コピペするとエラーになるので注意


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