2011年06月21日(Tue)
■ Windows7にApple Wireless Keyboardを使い始めた。
先週あたりだったか、今、メインで使っているWindows7のノートPCのキーボードが調子おかしくなったので、iPad&iPod用にと思って用意しておいたApple Wireless Keyboardを使うことにした。写真のとおり、横幅がノートPCにぴったりでちょうどよく、あと、ノートPCにデフォルトでついているトラックパッドとの位置もジャストフィット。これはうれしい。
今使っているノートPCには、Bluetoothがついていないので、\1000でBluetooth®2.1+EDR対応 USBアダプター(class2) | バッファローコクヨサプライを買ってきた。ノートPCのUSB接続ジャックに入れて、キーボードの電源をあげたら、一回、接続認証のための入力を求められ(入力はキーボード側で行う)、あとは何もせずともキーボード認識してくれた。
ただ、Apple Wireless Keyboardは、キー配列がMacのもので、Windows向けではない。これをフォローするために、Apple Wireless Keyboard Helper for Windows - misuzilla.orgをWindows7に入れてスタートアップに登録した。
マシン起動時に、Apple Wireless Keyboard Helperが起動するところまで確認してからキー入力をしはじめないと、日本語入力のON/OFFあたりの動作がおかしくなるので注意だけれど、いまのところ、快適にキーボード入力が行えている。*1
ただし、デメリットもあって、Bluetoothは結構、電気を使う感じがする。Bluetooth接続端子あたりのノートPC底面の発熱がそれなりにあるような感じがするので、膝上で使う時は低温火傷を注意と、あと、電源ない環境では使える時間が少し短くなったかも(当社比)。
追記
Apple Wireless KeyboardとATOKの状態を次のページにまとめた。
*1 動作がおかしい場合は、タスクバーに常駐しているApple Wireless Keyboard Helperを右クリックし、キー設定スクリプトの再読込をして、読み込み通知がバルーン表示されるのを待つ。マシンを休止状態にして復帰後など、これをしないとうまく動作しない感じ。
2011年06月22日(Wed)
■ GoogleDocsのフォームからメールを送信する。
ちょっと必要があって調べた結果、GoogleDocsのフォームからデータ送信時、メールを送信するには二種類の方法があることがわかった。
ひとつは、フォームsubmit時に、データ更新があったことだけをスプレッドシートの所有者にメール送信する方法。これは、該当スプレッドシートの「ツール→通知の設定」で次のような項目があるので、「ユーザがフォームを送信したとき」と「メール その都度」をチェックし保存すれば良い。届くメールにはスプレッドシートのURLも記載されていて便利。
もうひとつは、フォームsubmit時に、フォームに登録したデータをメールに記載して、指定したメールアドレスに送信したい場合。これは、該当スプレッドシートにフォームに記入されたデータを読み込みメールに書き込むコードを書いて、イベントと関連づける。参考にしたのは、Google Docsのフォーム投稿者に確認メールを送信する - _development,。
手順としては、
- メール送信したいフォームのあるスプレッドシートを開く
- ツール→「スクリプト エディタ」を起動する
- スクリプト エディタ上で、メールを送信するコードを書く
- コードを保存する
- スクリプト エディタのトリガー→「Current Script's trigars」をクリック
- 現在のスクリプトトリガー→「No triggers set up. Click here to add one now.」をクリック
- Runに書いたコードのfunction名を指定、Eventsに「On from submit」を指定して保存
スクリプト エディタで拾えるカラムは、アルファベットでないとダメなので、フォーム作成時に、「質問のタイトル」は英語などアルファベットで記入し、捕捉文に日本語のタイトルや説明を入れるという工夫が必要。
わたしが書いたコードサンプル。
function onFormSubmit(e) { try { var email = e.namedValues["e-mail address"].toString() ; var name = e.namedValues["name"].toString() ; var subject = e.namedValues["subject"].toString() ; var message = e.namedValues["message"].toString() ; var msg = "差出人: " +name + "<"+ email + ">"+"\r\n"; msg += "題名: " + subject + "\r\n\r\n"; msg += "メッセージ本文: \r\n " + message + "\r\n"; MailApp.sendEmail(email, "[お問い合わせフォーム]"+subject, msg); } catch (e) { //エラーが発生した場合に管理者にメールを送信する MailApp.sendEmail("admin@example.com", "Error report", e.message); } }