2020年10月10日土曜日

[python] locateCenterOnScreen で TypeError

pyautogui の locateCenterOnScreen では、
アイコンが見つからなかった場合に、Exception が発生しなくなっている。

import pyautogui
x, y = pyautogui.locateCenterOnScreen('icon.png')
pyautogui.click(x, y)


・リファレンス
image が画面にない場合は、ImageNotFoundException
https://pyautogui.readthedocs.io/en/latest/screenshot.html

・実際
Exception は発生せず、None が戻る。
このためサンプルの実装だと、None を x,y(タプル)に代入できず、以下のエラーとなる。
TypeError: cannot unpack non-iterable NoneType object

2020年9月10日木曜日

[VBA] Sgn 関数で内部エラーが発生

VBAの Sgn 関数で配列の未割り当てをチェックしている場合に、内部エラーが発生する。

■ サンプルコード
Dim arr() As String
If Sgn(arr) = 0 Then Debug.Print 0

■ エラーメッセージ
「実行時エラー 51、内部エラーです。」

これは Sgn 関数本来の使い方ではないが、どうやら以前に配列のチェック方法として広まったらしく、MS Office 32bit 環境では そこそこ動いていた。これが Office 64bit だとエラーになる。(※Windows の 64bit のことではない)

言語仕様でない使い方なので、この方法は止めましょう。


2020年7月19日日曜日

[ラズパイ] タスク バーを復旧する

Windows でいうと「タスク バー」になりますが、Raspberry Pi だとデフォルトの「パネル」になります。

パネルを削除していないユーザ、もしくは別の環境から設定ファイルをコピーして再ログインすれば、元に戻ります。
設定ファイルは以下

$HOME/.config/lxpanel/LXDE-pi/panels/panel

2020年6月30日火曜日

[Oracle] VIEWのSQLを出力する

Oracle のビュー定義は、データ・ディクショナリ・ビューを検索することで確認できますが、SQL*Plus で出力する場合は、システム変数の調整が必要です。

SET PAGESIZE 2000(SQLの行数、ヘッダの繰り返しを防ぐ)
SET LINESIZE 500(1行に表示するバイト数、途中での改行を防ぐ)
SET LONGCHUNKSIZE 500(これも1行のバイト数として必要)
SET LONG 10000(SQLのバイト数)

SELECT TEXT FROM USER_VIEWS
WHERE VIEW_NAME = 'view name'