アーカイブ

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

対数を使って桁数を調べる

2011 年 7 月 21 日 コメントはありません

「123」が3桁であることは見ればすぐ分かるのですが、計算で求めるにはどうしたらよいでしょうか。

3桁の数は100以上1000未満ですので
102≦3桁の数<103
となります。
つまり、数yの桁数xは
10x-1≦y<10x
を満たす数となります。
簡単に言えば
y=10x
となるxを求めればよいことになります。
これは10を底とする対数を使えば求められます。
x=log10y

Excelの場合

この先はExcelを使います。
Excelには10を底とする対数を求める「LOG10」というワークシート関数があります。
LOG10(123) = 2.0899
となります。
これを切り上げた数が桁数を表します。
ROUNDUP(LOG10(123),0) = 3
しかしこの方法には問題があります。
ROUNDUP(LOG10(100),0) = 2
となって、100なのに2桁となってしまいます。

そこで次のように切り捨てて1を加えます。
ROUNDDOWN(LOG10(100),0)+1 = 2
まとめると次の通り。

桁数=ROUNDDOWN(LOG10(数),0)+1

JavaScriptの場合

JavaScriptには底を10とする対数を求めるための関数はありませんが、自然対数(底をネイピア数とする対数)を求める関数「Math.log()」があります。

底を10とするyの対数=yの自然対数÷10の自然対数

このような変換ができますので、これを利用します。

桁数=Math.floor(Math.log()/Math.log(10))+1
カテゴリー: JavaScript タグ: , ,

JavaScriptの日付オブジェクトが認識する形式

2011 年 5 月 24 日 コメントはありません

JavaScriptの日付オブジェクトは、年、月、日とバラバラにセットして使いますが、日付を表す文字列をセットしても日付として認識します。

document.write(new Date("15 June 2008"));

これを実行すると次の通り表示されます。

Sun Jun 15 00:00:00 UTC+0900 2008

では、どのような日付文字列ならば正しく処理されるのでしょうか。 続きを読む…

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

JavaScriptのmatchの返り値

2011 年 5 月 23 日 コメントはありません

JavaScriptのmatchは正規表現に合致した文字列を配列で返します。
「g」を付けない場合と「g」を付ける場合で内容が変わります。

gを付けない場合 gを付ける場合
0個目 合致した部分全体
1個目 1個目の括弧で括られた部分
2個目 2個目の括弧で括られた部分
0個目 最初に合致した部分全体
1個目 2番目に合致した部分全体

gを付けない場合のサンプル

str="xayxbyxcy";
ret=str.match(/(x.)y/);

ret[0]=”xay”
ret[1]=”xa”

「x□y」という文字列を探しています。
gがないので一つ見つけたら終わりです。
返り値の0個目は合致した部分全体です。「xay」になります。
返り値の1個目は合致した部分のうち括弧に挟まれた部分です。「(xa)y」と見て「xa」になります。

gを付ける場合のサンプル

str="xayxbyxcy";
ret=str.match(/(x.)y/g);

ret[0]=”xay”
ret[1]=”xby”
ret[2]=”xcy”

上のサンプルと同じく「x□y」という文字列を探しています。
gがあるので合致する文字列をすべて見付けます。
返り値の0個目は最初に合致した文字列です。
返り値の1個目は2番目に合致した文字列です。
返り値の2個目は3番目に合致した文字列です。
括弧に挟まれた部分を返すようなことはありません。

カテゴリー: JavaScript タグ: ,

iPhoneで複数の写真を選択する方法

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

iPhoneのカメラロールで複数の写真を選択する方法です。

カメラロールを開き、右上の矢印アイコンをクリックします。 続きを読む…

カテゴリー: iPhone タグ: ,

Google APIを使うにはサインアップすればよい

2011 年 4 月 3 日 コメントはありません

Google APIを使うと、検索の仕組みを自分のサイトに簡単に組み込むことができます。
しかし、色々できるおかげでページも色々あって、とても分かりにくいです。
理屈抜きで、とにかく使ってみたいということであれば、次のページを開いてください。

http://code.google.com/intl/ja/apis/loader/signup.html

このページで自分のサイトのURLを入力し「Generate API Key」をクリックします。
すると、自分のキーが発行され、次のようなサンプルページ(のコード)が表示されます。
このサンプルページがないのが分かりにくさの原因だと思います。 続きを読む…

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

ビデオプレイヤーでスキップ

2011 年 3 月 24 日 コメントはありません

Windows用のビデオプレイヤーは色々ありますが、最もよく使うのは、前後へのスキップ(ジャンプ)だと思います。
ソフトによって違いますし、よく忘れてしまうので、まとめてみました。

Windows Media Center

前へスキップ Ctrl+F
後へスキップ Ctrl+B

VLC

前へスキップ Shift+Right < Alt+Right < Alt+Ctrl+Right
後へスキップ Shift+Left < Alt+Left < Alt+Ctrl+Left

Gom Player

前へスキップ Right < Ctrl+Right < Shift+Right
後へスキップ Left < Ctrl+Left < Shift+Left

なお、WindowsメディアプレイヤーとiTunesについては見付かりませんでした。

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

シート上のテキストボックスをすべて削除

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

Excelのシート上のテキストボックスをすべて削除する方法です。
Excel2007で確認しました。

通常の方法

  1. ホーム-編集-検索と選択-条件を選択してジャンプ-選択オプションダイアログを開く。(Ctrl+G、セル選択でも同じ)
  2. オブジェクトにチェックしてOKをクリック。
  3. テキストボックスがすべて選択されていることを確認。
  4. Deleteキーを押す。

これでテキストボックスがすべて削除されますが、テキストボックスだけでなく、その他の図形などもすべて削除されます。

マクロを使う方法

マクロを使う場合は次のようにします。

Sub shape_delete()
    For Each myshape In ActiveSheet.Shapes
        myshape.Delete
    Next
End Sub

この場合、やはりテキストボックスだけでなく他の図形も削除されてしまいます。
テキストボックスだけ削除する場合は次のようにします。
「.Type = msoTextBox」として図形がテキストボックスである場合だけ処理するようにします。

Sub textbox_delete()
    For Each myshape In ActiveSheet.Shapes
        If myshape.Type = msoTextBox Then
            myshape.Delete
        End If
    Next
End Sub

タイプを変えれば、例えば次のようにコメントだけを削除することもできます。

Sub comment_delete()
    For Each myshape In ActiveSheet.Shapes
        If myshape.Type = msoComment Then
            myshape.Delete
        End If
    Next
End Sub

例えば、ボタンなどのフォーム以外を指定したければ「.Type <> msoFormControl」とします。

カテゴリー: Excel タグ: ,

jQueryのnextUntilを使う

2011 年 3 月 6 日 コメントはありません

HTMLで、最初は見出しだけが表示されていて、クリックするとその見出しの配下が表示されるページを作ってみます。
jQueryを使います。
HTMLは次の通りです。

<h2>見出し2</h2>
<h3>見出し3</h3>
<p>本文。</p>
<h2>見出し2</h2>
<h3>見出し3</h3>
<p>本文。</p>

配下と言ってもh2とh3とpは親子関係にはありません。
このような場合はnextUntilを使います。ある要素からある要素までを取得します。
正確には「ある要素の次からある要素の前まで」ですので、ちょうど要素に挟まれた部分を取得できるのです。
サンプルコードは次の通りです。

$("h2").nextUntil("h2").hide();
$("h2").click(function(){
    $(this).nextUntil("h2").toggle("fast");
});

まず、h2とh2に挟まれた部分を非表示にしておきます。
次に、h2をクリックすると、クリックした部分(this)と次のh2に挟まれた部分にtoggleを適用します。toggleは表示と非表示を交互に行います。

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

Googleカレンダーのインポートで「終日」を使う

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

以前、GoogleカレンダーにCSVをインポートする方法を書きましたが、今回は「終日」の予定をインポートしてみます。
必要な項目は次の3個です。

  • Subject
  • Start Date
  • All Day Event

「All Day Event」に「TRUE」とセットすることで、予定が「終日」となります。

Subject,Start Date,All Day Event
休暇,2011/4/16,TRUE
カテゴリー: デジタル タグ: , ,

Writerで2枚目からページ番号を表示する

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

オープンオフィスライター(OpenOffice Writer)でページ番号を表示する際に、表紙には表示せず、2枚目から表示したい場合があります。

最初のページ

  1. 文書の先頭にカーソルを移動する。
  2. 書式-スタイルと書式設定を選択。
  3. スタイルと書式設定ダイアログが開く。
  4. ページスタイルのアイコンをクリック。
  5. 「最初のページ」をダブルクリック。これでカーソルのあるページが「最初のページ」となる。
  6. タイトルなど表紙の内容を入力。

標準ページ

  1. カーソルを表紙の内容の最後に移動する。
  2. 挿入-任意区切りを選択。
  3. 区切りの挿入ダイアログが開く。
  4. 「改ページ」を選択、スタイルとして「標準」を選択、ページ番号の変更にチェック、「1」を入力。
  5. カーソルが2ページ目の先頭にあることを確認。

ページの挿入

  1. 挿入-フッター-標準をクリック。
  2. カーソルが2ページ目のフッターにあることを確認。
  3. 挿入-フィールド-ページ番号をクリック。

つまり、1枚目に「最初のページ」というページスタイルを設定、2枚目に「標準」というページスタイルを設定、という作業を行います。

ヘッダーの場合も同様です。
通常はページ番号は左寄せで表示されますが、中央寄せにしたければタブを一つ、右寄せならばタブを二つ挿入すればよいです。
これにより、左側にファイル名、中央にタイトル、右側にページ番号、というような設定ができます。

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