2018年1月13日土曜日

VBA のユーザー関数の名前の怪

今更ながらですが、同じVBA でも Access と Excel では微妙に違いますね。

今回陥ったのは、ユーザー関数の名前の付け方です。

今までAccess で使っていたユーザー関数をそのままExcel に流用しようとしました。

Access ではこんな感じ。
----------------------------------------------------
Function aaa1( V_1 as String) as String
     aaa1 = "答えは = " & V_1
End Function
----------------------------------------------------

めっちゃ単純化していますけど、まあこんな感じで、ちゃんと運用しています。

これをそのまま Excel にコピーしました。
そして、ワークシート上で使うと、そのセルには、
#REF!
というエラーが表示されています。

これはかなりはまりました。

関数の処理内容はいたって簡単なのに、なぜ?

しかも混乱に拍車をかけたのが、
Excel でも、プロシージャの中で使うと問題なく答えが返ってきます。

なぜ?なぜ?なぜ?なぜ?

ここでふと気づきました。
エラーが「#REF!」ってことは、参照先のセルが不正。
ってことは、これは関数を呼んでいるのではなく、セルを参照している?

ということは、aaa1 というのはユーザー関数とは思われていなくて、
R1C17576 のセルを参照していて、その後に()が付いているので、参照不可。

ということで、関数名を「aaa_1」とかのアルファベットのあとにすぐ数字が来ないような名前にしたら、問題なく処理できました。






2018年1月7日日曜日

Raspberry Pi ZERO W の MPEG-2 ライセンス購入

Pi ZERO でも音楽やMPEG-4 なら結構快適にKODIが動作するんですが、以前に録りためた、DVDのISOファイルを再生するとかなり厳しい状態になります。

この解消方法は、MPEG-2 のライセンスを購入することで、動画再生支援ハードウェアを活用することができるということで、早速ライセンスを購入してみました。

手続き自体は簡単で、
http://www.raspberrypi.com/mpeg-2-license-key/
から購入できます。

値段はユーロ建てで、2.4ユーロ、私の時で日本円にして、311円でした。
これくらいなら、気軽に買えますね。

購入ページによると、手続き後72時間以内に、ライセンスキーがメールで送られてくるとのことです。
が、私の場合、そうはいきませんでした。
まあ、私に非があるといえばそうなんですが、
購入手続きの際に、Pi ZERO のシリアルナンバーを送らなければならないんです。
これは16桁の英数字で構成されていて、その確認方法もちゃんと説明されているので、簡単に確認できます。
ただ、前の方の桁は全部「0」だったので、これを省略して7桁だけ送ってしまいました。

すると、24時間後ぐらいに「そのシリアルナンバーは異常です。」みたいなメールが返ってきて、「このメールに正しいシリアルナンバーを書いて返信しろ」みたいなことが書いてあるので、今度はきちんと「0」の部分も含めて16桁書いて送りました。

ところが、送りなおした後72時間経過しても、キーが送られてきません。
私の中学生並みのたどたどしい英語で、「なんでやねん!」みたいなことを書いて再度送っても、なんの返事もありません。

かなり頭に来たけど、英語なのでどうしようないので、仕方なく、再度購入手続きをして、311円ほどをもう一度払おうかと思っていたら、
やっとライセンスキーが送られてきました。

最初の購入手続きが11月25日で、キーを入手出来たのが12月1日となってしまいました。
ま、手抜きコードを送った自分が悪いんですけどね。

キーをPi ZERO に入れて、早速ISO ファイルを再生したら、なんと!スムーズに動くじゃないですか~。
こりゃ便利です。
Pi ZERO に、昔から多くのISO ファイルを格納してきたUSBの外付けHDD を接続して、快適に映画鑑賞しています。

2018年1月6日土曜日

Fire TV Stick に Silk (Browser) を入れる

既に多くの人が書いていますが、Amazon と Google の仲が悪いようで、Fire TV からYouTube のアイコンが無くなりました。
私はあまりYouTube を必要としないので、がっかり感は少ないのですが、逆に、Amazon がその代替案として、FireFox と Silk という二つのブラウザーをインストールできるようにしてくれましたので、これがラッキーです。

元々、Fire TV を購入したのが、OS が Android と聞いたので、様々なスマホ用アプリが使えると思ってのこと。
一番入れたかったのがカレンダーアプリで、Google カレンダーのデータをテレビで表示したかった。

ところが、Fire TV を購入したものの、なかなかカレンダーアプリをインストールすることが出来ずに困っていました。

それが、ブラウザーがあれば、普通に表示できるはず。ということで、早速普段PCでも使っているFireFox をインストールしました。
外付けのキーボード・マウスなどを接続することなく、標準の Fire TV 用のリモコンだけで、画面キーボードからGoogle のURL を打ち込んで、ID と パスワードを入力したら、簡単にGoogle カレンダーが表示できました。
ところが、FireFox だと、お気に入りに登録する方法がわかりません。
これだと、毎回URLを打ち込まないとダメなので、そんな邪魔臭いことしてたら、意味がない。

そこで、もう一つのブラウザーの Silk を入れてみました。
これは使ったことなかったのですが、別に違和感なく使えて、しかも、お気に入り登録もできます。
もちろん、ID とパスワードも記憶させることができるので、お気に入りをクリックすれば、即カレンダーが表示されます。

これで、子供が自分で自分の予定をテレビで確認できるようになりました。

まあカレンダーの表示までにちょっとモッサリ感がありますが、実用の範囲です。
ついでに、グーグルの基本画面とヤフー天気もお気に入り登録しておきました。

これで、私がスマホを使っている機能の80%ぐらいは網羅できた感じですね。