アーカイブ

‘tips’ タグのついている投稿

Gmailですべてを一括して既読にする方法

2011 年 11 月 19 日 コメントはありません

Gmailの未読件数など気にしていなかったのですが、iOS版のアプリを使ったところ、未読件数がバッジとして表示されるのです。ここに「8000」などと表示されると気持ちが悪いのです。
そこで全部、既読にすることにしました。
しかし一気に既読にする方法がなかなか見つからず、ようやく分かったので、メモしておきます。

Gmailで受信トレイにある未読のすべてのメッセージを一括して既読にする方法です。 続きを読む…

カテゴリー: デジタル タグ: ,

「まうs」となるのを防ぐには

2011 年 11 月 17 日 コメントはありません

ローマ字変換で「ます」と打つつもりで「まうs」と打ってしまうことがあります。
調べると、結構、同じような人がいます。
“まうs” – Google 検索
“舞うs” – Google 検索

タイプミスは修行不足と思っていましたが、一向によくならないので、単語登録してしまいました。
MS-IMEで、読みを「まうs」、語句を「ます」、品詞を「接尾語」としたところ、「まうs」と打ち間違えても意図通り「ます」に変換されます。

ただ、こんなことをして根本的な解決になるのか、という疑問は残ります。
昔「「フインキ」と打っても「雰囲気」が出ないから単語登録した」という話を聞いて大笑いした記憶がありますが、もはやその人を笑うことはできません。

カテゴリー: デジタル タグ: ,

Wordでショートカットキーを設定

2011 年 11 月 8 日 コメントはありません

自作のマクロにショートカットキーを設定する方法です。
ショートカットキーとは「Ctrlキーを押しながらTキーを押す」などで特定のマクロなどを実行する仕組みです。「Ctrl+C」はコピー、「Ctrl+V」は貼り付け、などのショートカットキーは定番でしょう。
このショートカットキーはカスタマイズできます。ここではマクロを採り上げましたが、Wordで使える機能ならば何でもOKです。Word2007で確認しました。

  1. 左上端にあるOfficeボタン-Wordのオプションを選択。
  2. Wordのオプションダイアログで、ユーザー設定を選択。
  3. ショートカットキー:ユーザー設定をクリック。
  4. 分類で「マクロ」、マクロで使いたいマクロを選択。
  5. 「割り当てるキーを押してください」にカーソルを動かす。
  6. キーボードのキーを押す(例えばCtrlキーを押しながらTキーを押す)。
  7. 「割り当て」をクリック。

キーボードのキーについては、「普段使わない」かつ「覚えやすい」ものにしてください。
「Ctrl+C」などの定番はやめた方が無難です。

カテゴリー: Word タグ: ,

VBAのMsgBoxとInputBoxではキャンセルの返り値が違う

2011 年 11 月 1 日 コメントはありません

VBAでメッセージボックスを表示するには次のようにします。

Sub test_msgbox()
    res = MsgBox("テスト", vbOKCancel)
End Sub

この場合、OKボタンとキャンセルボタンがあるダイアログが表示されます。
OKをクリックした場合、「1」(定数だと「vbOK」)が返ります。
キャンセルをクリックした場合、「2」(定数だと「vbCancel」)が返ります。

一方、ユーザーに入力を促すインプットボックスを表示するには次のようにします。

Sub test_inputbox()
    res = InputBox("テスト", vbOKCancel)
End Sub

この場合、テキストボックスとOKボタンとキャンセルボタンがあるダイアログが表示されます。
OKをクリックした場合、テキストボックスの内容が返ります。
次が注意です。
キャンセルをクリックした場合、長さ0の文字列(“”)を返します。

ここをMsgBoxと混同して、「キャンセルボタンを押すと返り値がvbCancelだから処理終了」というつもりで次のように書くと失敗します。

Sub test_inputbox()
    res = InputBox("テスト", vbOKCancel)
    If res = vbCancel Then
        Exit Sub
    End If
    '後続処理
End Sub

定数「vbCancel」は「2」と同じですので、インプットボックスで「2」を入力した場合、処理が終了してしまいます。
次のように書くとよいです。

Sub test_inputbox()
    res = InputBox("テスト", vbOKCancel)
    If res = "" Then
        Exit Sub
    End If
    '後続処理
End Sub
カテゴリー: デジタル タグ: ,

jQueryで特定のoptionを選択状態にする方法

2011 年 9 月 28 日 コメントはありません

次のようなHTMLがあったとします。

<select>
<option>a</option>
<option value="x">b</option>
<option>c</option>
<option>d</option>
</select>

このとき、jQueryで、次のようなコードを使うとどうなるでしょうか。

$("select").val("x");

2番目のオプション「b」が選択状態になります。
「このselectの値を「x」にする」というような感じです。

しかし次のようにvalueがセットされていない場合でも動作します。

<select>
<option>a</option>
<option>b</option>
<option>c</option>
<option>x</option>
</select>

4番目のオプション「x」が選択されます。

<option value="あ">い</option>

この場合、JavaScriptでは「.value」を使うと「あ」、「.text」を使うと「い」となりますが、jQueryで「.val()」を使うと、両方が該当するようです。

では、valueとtextの両方に「x」がある場合はどうなるでしょうか。

<select>
<option>a</option>
<option value="x">b</option>
<option>x</option>
<option>d</option>
</select>

3番目のオプション「x」が選択されます。最後に該当するものが選択されるようです。
別のオプションのvalueとtextに同じ値をセットすることはまずないと思いますが。

なお次のようにしても正しく動作しません。

$("select").text("x");
カテゴリー: デジタル タグ: ,

Accessで経過時間を計算する

2011 年 8 月 30 日 コメントはありません

Accessで次のようなテーブルがあったとします。(テーブル名:tabletime)

開始時刻 終了時刻
8:45:00 9:00:00
9:00:00 12:00:00
9:30:00 11:20:00

ここで次のような問題を考えます。

開始時刻から終了時刻までの経過時間を求めよ。ただし1時間単位とし1時間未満の端数は切り上げる。

続きを読む…

カテゴリー: Access タグ: , ,

PHPでURLを読み替える方法

2011 年 8 月 26 日 コメントはありません

PHPを使うと、パラメータを与えてそれに応じて描画する、ということができます。
例えば「http://myhost/imagetest.php?p=abcd&q=jpg」というURLを指定し「abcd」というパラメータを与え、これに応じてJPG画像を作成するケースがあったとします。
この場合、描画した画像を保存する場合、ファイル名がすべて「imagetest.jpg」となってしまいます。パラメータが異なってもファイル名が同じなのです。
もしURLが「http://myhost/imagetest.php/abcd.jpg」ならばファイル名は「abcd.jpg」と保存されるので、次のような処理ができないか、考えます。

「http://myhost/imagetest.php/abcd.jpg」を
「http://myhost/imagetest.php?p=abcd&q=jpg」に読み替える。

サンプル

$pathinfo=$_SERVER['PATH_INFO'];
$arrs=split("[/\.]",$pathinfo);
$p=$arrs[1];
$q=$arrs[2];

$_SERVER["PATH_INFO"]はファイル名「imagetest.php」より後の部分を取得しますので、$pathinfoには「/abcd.jpg」が入ります。
これをsplitを使い「/」と「.」で分割します。1種類の記号で分割する場合はexplodeを使いますが、ここでは2種類なのでsplitを使いました。もっと複雑な分割が必要ならばpreg_matchなどを使うことになるでしょう。
$arrs[0]=>”"
$arrs[1]=>”abcd”
$arrs[2]=>”jpg”
となります。
あとは$_GET['p']や$_GET['q']を使ってパラメータを得る場合と同じ処理になります。

カテゴリー: デジタル タグ: , ,

mb_convert_kanaのオプション

2011 年 8 月 22 日 コメントはありません

PHPにはmb_convert_kanaという便利な関数があります。
全角と半角を相互に変換するだけでなくカタカナとひらがなを変換してくれます。
どのように変換するかはオプションを文字列として与えます。
整理してみました。

パターン 全角⇒半角 半角⇒全角
英字 r R
数字 n N
英数字 a A
スペース s S
全角カタカナ⇔半角カタカナ k K
全角ひらがな⇔半角カタカナ h H
全角ひらがな⇔全角カタカナ C
カテゴリー: デジタル タグ: , ,

JavaScriptで配列をコピーする

2011 年 8 月 16 日 コメントはありません

JavaScriptで配列をコピーするときは次のような注意が必要です。

a=[10,20,30];
b=a;

配列変数aを配列変数bにコピーしています。
これで配列変数bをaの代わりに使うことができます。

次にpopを使ってaの最後の要素をクリアします。

a.pop();

この場合、bには何も影響しないように思われますが、実行結果は次のようになります。

a=[10,20]
b=[10,20]

bもaと同じく最後の要素がクリアされます。
つまり「b=a」とすると各要素がコピーされるのではなく「bはaを参照する」ということになるのです。
したがって各要素をコピーするためには次のようにします。

a=[10,20,30];
for(i=0;i<a.length;i++){
    b[i]=a[i];
}
a.pop();

実行結果は次の通り。

a=[10,20]
b=[10,20,30]

意図通り、aだけが処理されました。

なお次のような簡単な方法もあります。
sliceを使うと配列を部分的に抜き出すことができます。
第1引数にセットした位置から第2引数にセットした位置の前まで抜き出します。
第1引数に「0」をセットし、第2引数を省略すると、最初から最後までを抜き出しますので、配列の各要素をコピーするのと同じ効果があります。

a=[10,20,30];
b=a.slice(0);
a.pop();
カテゴリー: JavaScript タグ: , ,

96dpiとは、センチ-ピクセル換算表

2011 年 8 月 10 日 コメントはありません

PHPで図形を描くプログラムを書いているのですが、印刷して使うことと前提とすると、どれくらいのサイズにすればよいか分からないので調べてみました。
プログラムはピクセル単位でこれを長さ(センチなど)に換算するとどうなるか。
300ピクセルの図形をインターネットエクスプローラに表示して印刷したところ、7.9センチでした。1センチあたり37.97ピクセルになります。「半端な値だ」と思い、考えたのはインチ単位ではないかということ。
1インチは2.54センチとすると1インチあたり96.44ピクセル。これも半端ですが「96」に思い当たる節が。
調べるとWindowsの解像度は通常、96dpiであるそうです。つまり1インチあたり96ドット(ピクセル)となっているのです。
これさえ分かっていれば計算は簡単です。

サイズ センチ インチ ピクセル
A4 21.0 29.7 8.3 11.7 794 1123
A5 14.8 21.0 5.8 8.3 559 794
A6 10.5 14.8 4.1 5.8 397 559

もし印刷してA4サイズにしたければ横797ピクセル、縦1123ピクセルになるようにすればよいことになります。

ただし96dpiはWindowsの標準的なソフトの場合であり、これ以外のケースもあるそうです。またMacは違うそうです。

カテゴリー: デジタル タグ: , , , ,