2026年5月5日火曜日

モバイルバッテリー容量計算

モバイルバッテリー容量計算

2026.4.24 から始まったモバイルバッテリー機内持ち込みのルールでは

モバイルバッテリーが 2 個 (容量 160Wh までであること)
とあるが、 160Wh ってナニ? mAh しか知らんぞ? となったので、調べてみた。
  • mAh も Wh もバッテリー容量を指す
  • 読んで字のごとく、1 時間当たりの消費量が mA か W の違いだけ
  • つまり、それぞれ a [mAh], w [Wh], バッテリー内部電圧 v [V] とすると \[ w = \frac{a}{1000} \times v \]
  • 通常、バッテリー内部電圧は 3.7 [V] なので \[ 10000 [mAh] = 37 [Wh] \]

計算機

2026年5月1日金曜日

JScript の配列と WScript.Arguments

JScript の配列と WScript.Arguments

JScript の配列と WScript.Arguments

知っている人は当たり前なのだろうが、よく間違えるので備忘録として残しておく。

こんな風に配列長を求める JScript を書いて動かしてみる。

  • test.js

    // 引数を取得
    WScript.Echo('引数の数: ' + WScript.Arguments.Length);
    WScript.Echo('引数1: ' + WScript.Arguments(0));
    WScript.Echo('引数2: ' + WScript.Arguments(1));
    
    // 空配列に値を追加
    var ary = [];
    WScript.Echo('追加前: ' + ary.Length);
    ary.push('foo');
    WScript.Echo('一つ目追加: ' + ary.Length);
    ary.push('bar');
    WScript.Echo('二つ目追加: ' + ary.Length);
    
    WScript.Echo('一つ目: ' + ary[0]);
    WScript.Echo('二つ目: ' + ary[1]);
    
  • 出力

    c:\Users\toasted.laver\Downloads>cscript /nologo test.js aaa bbb
    引数の数: 2
    引数1: aaa
    引数2: bbb
    追加前: undefined
    一つ目追加: undefined
    二つ目追加: undefined
    一つ目: foo
    二つ目: bar
    

Length が定義されていない と言われるが、 WScript.Arguments.Length の方はちゃんと想定の値を返している。

'L' を小文字 'l' すると意図通り動くようになる。

ary.Length ⇒ ary.length
  • 出力

    追加前: 0
    一つ目追加: 1
    二つ目追加: 2
    一つ目: foo
    二つ目: bar
    

恐らく、Arguments は Windows の組込みオブジェクトなので大文字でも小文字でも動くようになっている1 が JScript 言語で定義されている配列はそうはいかない。

てことだろう。知らんけどw

  • まとめ

    大文字 WScript.Arguments.Length OK
      ary.Length NG
    小文字 WScript.Arguments.length OK
      ary.length OK

Footnotes:

1

そもそも、 Arguments は配列じゃないしねw

Created: 2026-05-01 金 15:03

Validate

2026年4月4日土曜日

EXCEL での正規表現置換

EXCEL での正規表現置換

EXCEL での正規表現置換

エクセルで、"No" の後の数字を一括で A1 セルで指定した内容に置換したくて

REGEXREPLACE(B10,"(No)[0-9]+","$1"&A1)

と書いたらエラーになった。なんで?

& 以降を取ったらエラーは出ないので、式自体は問題ないはず…

小一時間熟考して気がついた。 A1 セルに入ってたのは 2 。そらエラーになるわ orz

  • 解説
    • 数式を展開すると

      REGEXREPLACE(B10,"(No)[0-9]+","$1"&"2")
      

      ↓式を処理すると

      REGEXREPLACE(B10,"(No)[0-9]+","$12")
      

      12番目の括弧はない からエラー

    • こんな風に {} で括らなきゃいけなかったのね。

      REGEXREPLACE(B10,"(No)[0-9]+", "${1}"&A1)
      

Created: 2026-05-01 金 14:04

Validate

モバイルバッテリー容量計算

モバイルバッテリー容量計算 2026.4.24 から始まったモバイルバッテリー機内持ち込みのルールでは モバイルバッテリーが 2 個 (容量 160Wh までであること) とあるが、 160Wh ってナニ? mAh しか知らんぞ? ...