健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ 計算あれこれ
条件によって計算を単純化するには
例えば、a = 1, b = 2 であるとき、
a = a は真
a = b は偽
b = a + 1 は真
といったようなことになります。
真(True)は「-1」
偽(False)は「0」
と、VBAでは決まっていますので、これを計算式に利用することができます。
b = b - (a = 1)
この式では、a = 1であればbの値が1つ増えます。
b = b - (-1) ⇒ b = b + 1
a = 1以外であればbの値は変化しません。
スイッチを使って状態を把握・制御するには(ビット演算)
状態を把握、制御するためには、一定の場所にその状態を記憶しておかなければなりません。
数字を0か1に分けてスイッチの役割を持たせます。
たった4つのビットで16種類とれます
10進数⇔2進数⇔16進数
0⇔0000⇔ 0
1⇔0001⇔ 1
2⇔0010⇔ 2
3⇔0011⇔ 3
4⇔0100⇔ 4
5⇔0101⇔ 5
6⇔0110⇔ 6
7⇔0111⇔ 7
8⇔1000⇔ 8
9⇔1001⇔ 9
10⇔1010⇔ a
11⇔1011⇔ b
12⇔1100⇔ c
13⇔1101⇔ d
14⇔1110⇔ e
15⇔1111⇔ f
16進数は Hex([十進数])関数で分かります。
&HF のように、先頭に「&H」を付けると、それが16進数であると認識されます。
4ビットで16通り、Byte型変数(8ビット)を使えば、一つの事柄に対して256通りの状態を記憶できます。
違う事柄に対して一つ一つオン、オフの関係を持たせると、8ビットで8種類です。
例えば
&HFFは、2進数で11111111 と、1が8個並んだ状態です。
そのうち、右から3番目の1を0に変更したい場合、
結果は11111011 となります。⇔&HFB
知りたいのは&HFBではなく、右から3番目のスイッチが任意のタイミングでオンかオフかということとすると、使い方としては、
まず、各ビットを16進数に直します。
1(&H80)1(&H40)1(&H20)1(&H10)1(&H8)1(&H4)1(&H2)1(&H1)
となり、右から3番目(&H4)をまずオフにします。
X = &HFF xor &H4
Xor(排他的論理和)を使うことによって、特定のビットの状態を入れ替えることができます。戻すときも同じ操作です。
後で、他のビット(例えば7番目とか5番目とか)の状態に関わらず、
Result = Not(X) And &h4
とすると、右から3番目のビットが1の場合には0、0の場合には4がResultに入ります。
Not()で判定したいものを反転させた後、And(論理輪)を使います。
※ビットの組み合わせにより、更に複雑な判定もできます。
※VBAでは、シフト演算 (ビットを全体的に横にずらす:01001001⇒10010010←左に1桁ずらした。2倍、4倍、8倍などの計算を高速化)など高度な機能は備えていません。 普通に計算しましょう。
月~土曜日(10:00am~5:00pm) 日祝定休日
・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。
※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。
~当サイトからのご注文~
※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。
~配達日及び配達時間帯のご指定~
・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。
[午前中] [14~16時] [16~18時] [18~20時] [19~21時]
~配送料~
・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。
・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)
~代金引換手数料~
・代金引換手数料につきましては、全額当方で負担させていただきます。
~代金引換のお客様~
・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。
![]()
~クレジットカード決済サービス~
<直接決済は終了しました>
![]()
・お客様登録画面(ご希望商品選択後)にて簡単決済
![]()
~銀行振込のお客様~
・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)
お振込先:PayPay銀行 (0033) ビジネス営業部 (005)
(普通) 1 5 1 8 4 1 7 ヤマモトケンコウドウヤマモトマサハル