進数計算
通常使う数値を10進数と言います。0から9までの10個の表示形式を1桁で使います。10種類の表示を使った後は1桁繰り上がって2桁になります。
「0・1・2・3・4・5・6・7・8・9・10」です。
同じように二桁目も9まで行って次は3桁になります「98・99・100」です。いつも当たり前のように使っている数値ですが、上記のような見方をすると、法則性を感じることができると思います。10進数が10種の表示形式であれば、2進数は2種の表示形式、16進数は16種の表示形式があり桁上がりをするはずです。詳しくみていきましょう。
2進数の説明
2進数は、2種の表示形式があります。「0」と「1」です。2種書いて桁上がりをします。
「0・1・10・11・100・101・110・111」です。
桁はどんどん大きくなります。10進数になれている私たちは、0・1の羅列をみてもピンときません。10進数と対応させて考えるとわかりやすいと思います。
「0(0)・1(1)・10(2)・11(3)・100(4)・101(5)・110(6)・111(7)」となります。
かっこ内が10進数表示です。人にはわかりにくいものでも、コンピュータにとっては、とてもわかりやすい形です。コンピュータは電気信号があるかないかの2種類しか覚えることができません。あるかないかを1と0に対応させて考えるとコンピュータと人とが、理解しあえる第一歩を踏み出すことができます。
しかし、2進数で0と1の桁がたくさんあっても人が理解するのは大変です。そこで考え出されたのが16進数です。2進数4桁をひとまとめにして、1桁で表わそうとするものです。次に16進数の説明を行います。
16進数の説明
2進数の4桁分でいくつの表現ができるのでしょうか。
「0・1・10・11・・・・・1010・1011・1100・1101・1110・1111」で16種類になります。
次に16個の表現方法を考えなくてはいけません。0から9までは10進数の表現が使えそうです。問題は10から15までの6個です。10を「A」に対応させ、11を「B」・・・15を「F」に対応させました。16種の表現方法の出来上がりです。このようにして16進数が生まれました。16進数2桁で、00からFFまで表現できます。2進数で書くと8桁必要になり、8桁の0・1を見ても、なかなかピンときませんが16進数で書くとわかりやすくなります。00からFFまでで、10進数で256まで数えることができます。はじめにコンピュータが発展した英語圏での文字AからZまでの対応がこの256種でまかなえたことから、人とコンピュータとの会話が早いスピードで発展していきました。同じデータを見るのに、コンピュータは2進数で確認し、人は16進数で確認できれば、よりお互いを理解できると思います。以下に2進数、10進数、16進数の対応を表にしました。眺めてみてください。
2・10・16進数の対応表
2進数 | 10進数 | 16進数 |
---|---|---|
0000 | 0 | 0 |
0001 | 1 | 1 |
0010 | 2 | 2 |
0011 | 3 | 3 |
0100 | 4 | 4 |
0101 | 5 | 5 |
0110 | 6 | 6 |
0111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | 10 | A |
1011 | 11 | B |
1100 | 12 | C |
1101 | 13 | D |
1110 | 14 | E |
1111 | 15 | F |
Excelでの表現
Excelは16進数の表現方法を持っています。16進数を表現するのに、表示の前に「&H」を書きます。コンピュータ(Excel)の中はすべて2進数で処理されています。10進数で表示するか16進数で表示するかは、すべて表示の問題だけです。16進数で表示するには、Hex$()を使います。
[リスト7]rei_16sin (数値関数例題.xlsm)
Sub rei_16sin()
a = &HF0
MsgBox ("a= " & a) '(1)
MsgBox ("16進数表現 = " & Hex$(a)) '(2)
End Sub
変数aに&HF0(240)をセットして、表示すると10進数で表示されます(1)。16進数で表示したい時はHex$()を使います(2)。2・16進数表現はコンピュータ制御やロボットの制御などに、良く使用されます。コンピュータと人との対話にはとても便利な表現方法です。
図8:16進数の表現 |
関数の調べ方
VBAでプログラムを作成しようとするとき、ほしい関数が、Excelにどのような書き方で、組み込まれているか知りたい時があります。調べる方法として、前回説明したマクロの記録、Excelにあるヘルプ、インターンネットで記事を見つける、などがあります。それぞれの調べ方を見て行きましょう。
マクロの記録
[開発]-[マクロの記録]で手順を記録させます。VBAで記録されるので、記録終了後、記録されたマクロを書きなおして、思うようなVBAを作成することができます。Excel表での操作に含まれる関数やメソッドを調べるのにはとても良い方法です。マクロの記録はとても便利なのですが、操作の手順を記録するものなので、操作できないメソッド、たとえば「メッセージを表示したい」等にどのようなプログラムを書くかを調べることは、できません。このような時は、ヘルプやインターネットで調べます。
ヘルプの調べ方
通常すぐ思いつく調べ方です。VBEで[ヘルプ]-[Microsoft Visual Basic ヘルプ]をクリックします。検索文字を入れて[検索]ボタンを押すと関連項目が表示されます。何となくは検討がついているけれど、はっきりはわからない、と言うときなどに便利です。まったく検討がつかない関数やメソッドを調べるのにはちょっと大変かもしれません。
インターネットでの調べ方
現在はブログなどで、さまざまな人が、さまざまなことについて書いています。VBAの関数やメソッドがわからない時、検索サイトで検索文字を入れて調べると、詳しい説明付きのページを見つけることもできます。またいろいろなヒントをもらったりすることもあります。たとえば、文字を表示するメソッドを知りたい時など、「VBA メッセージ 表示」とスペースを空けて文字列をつないで検索すると、ほしいページにたどり着きやすくなります。どのような検索文字を持ってくるかで、検索内容が変わってきます。「検索の達人」などと呼ばれる人たちは、ボキャブラリー(語彙)の豊富な人たちです。いろいろな言葉に興味をもってみるのも、検索力アップにつながると思います。
まとめ
今回は関数の中の数値関数の一部を紹介しました。Excelはまだまだたくさんの数値関数をもっています。上記の関数の調べ方を使っていろいろ調べてみるのもたのしいのではないでしょうか。次回は文字列関数に焦点をあてて説明して行きたいと思います。
WINGSプロジェクト 横塚利津子著/山田祥寛監修
<WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。2009年4月時点での登録メンバは30 名で、現在も一緒に執筆をできる有志を募集中。