00をXORしても値は変わらないので、がそのまま結果となる。他のパターンでも同様に求めることができる。3値のうち2値が同値だった場合はその2値の方が返るようになっている。3値とも同値だった場合は、もちろんその値が中央値となる。ツイート洋々亭にて、様々なVBAコードが公開されている。この中に含まれている、丸付き数字(「○2」など)を丸囲み数字(「2」など)に変換する関数を、0~50まで対応できるように改造した。ちなみになんでこんな関数が必要かというと、一部の法令(児童福祉法など)は、項番号の代わりに丸数字を使用していることがあるが、丸数字は機種依存文字(環境依存文字)なので正しく表示されないコンピュータが存在する恐れがあり、e-Govでは「○2」としている。これを本来意図するところの丸数字に置き換えるため。現在ではほとんどの機種(環境)で丸数字が表示できるようになっており、これを一括変換したいという要望があったので、洋々亭のコードを拝借し、かつ範囲を広げた。※項番号を上記の方法で表記している法令があるための対処(児童福祉法等)。'まず全角数字を半角数字に置き換え、次に半角数字を丸数字に置き換える。Function「引数には丸記号+全角英数字の組み合わせの文字列しか来ない」という前提で作ってる関数なので、呼び出し前に正規表現やLikeマッチングでのふるい落としが必要。簡単な判定は19行目でやってるけど(引数が1文字以下なら何も返さず終了)。やってることは洋々亭のmarumoji関数と一緒。全角英数字を半角英数字に置き換え(22~25行目)、整数型に変換(26行目)。Case文で0未満と50超は対応する丸数字がないため[]で括る、0と21~50はChrW関数で文字コードから文字を取得。1~20は文字を並べてMid関数で対応する数字の位置に該当する文字を取得。1~20もChr関数を使えば取得できるが、文字を並べてMid関数で取得した方がちょっとだけ早い。Function0~50を全部並べてMid関数で取得した方が分かりやすいしできるならそうしたいんだけど、VBAは内部的にUnicode文字を使用しているものの、VBEはUnicode文字をサポートしていない。ChrW関数などを使用してUnicode文字をサポートしている出力先(例えばWord文書など)に出力すること自体は可能なので、こういった書き方になった。スマートな方法はないだろうか。ツイート別になんてこたないんだけどね。highlightjs.orgというサイトで公開されているライブラリを使用すれば、ブログ記事とかにプログラムのコードを貼り付けると自動的にシンタックスハイライトをしてくれるらしい。blosxomのプラグインとしてコードをシンタックスハイライトする奴を作ろうかなー、とか思ってたけど既にあったわ。いうわけで、ちょっと実験。渡された配列の要素をクイックソート(非安定ソート)で昇順に並び替える。Functionコードは前に何かで使ったクイックソート。ツイート久しぶりに書いてみる。興味深いニュースがあったので。GIGAZINEADHDとアスペルガー症候群(と、副次的な鬱)を患っているけど、まさしくこの例に当てはまる。本当に声が聞き取れない。隣の人と話すにも、相当耳を近づけないと聞き取れないこともある。車やバスに乗っている時もそうで、前や後ろの座席に座っている人の会話はほぼ聞き取れない。担当医によると、音声を選択的に聴取する機能(カクテルパーティ効果)が働いていない、とのこと。聴力検査では特に異常はない。オーケストラでもバンドでも。オーケストラの音の中から「クラリネットの音」とか「ヴァイオリンの音」だけを聴き取ることも、普通にできている・・・と思っている。「あそこに座っている人の」とかいうのは無理。人間の「話し言葉」と楽器の奏でる「音」とでは、音そのものの複雑さ(周波数?)や、その音の組み合わせ(言葉やメロディ)が持つ意味の複雑さなどでは、人間の話し言葉の方が段違いに複雑だからなのだろうと思う。考えてみたら、周りの人は普通にしてるんだよね。・・・うん、正直に言うね。