ExcelVBAとか

VBAってあんまり好きじゃないんだけど、
簡単に書けるしMSOfficeでは使った方が便利なので軽くいじってみた。

とはいえ、プログラミングには疎いので表計算ソフトで遊ぶ程度なのだが。

Excelのワークシート上に計算機と称したフォームを表示するだけのマクロである。

Option Explicit

Private Sub ComboBox1_Change()
If ComboBox1.Value = "引き算" Then
With ComboBox1
Unload Me
UserForm2.Show
End With
End If
If ComboBox1.Value = "足し算" Then
With ComboBox1
Unload Me
UserForm3.Show
End With
End If
If ComboBox1.Value = "かけ算" Then
With ComboBox1
Unload Me
UserForm4.Show
End With
End If

End Sub

Private Sub CommandButton1_Click()

If TextBox1.Value = "0" Then
TextBox3.Value = "不正な値"
With TextBox1
.Value = ""
.SetFocus
End With

ElseIf TextBox1.Value = "" Then
TextBox3.Value = "値を入力!"
TextBox1.SetFocus
Exit Sub

ElseIf TextBox2.Value = "" Then
TextBox3.Value = "値を入力!"
TextBox2.SetFocus

Else
TextBox3.Value = Range("A3")
End If

End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub


Private Sub TextBox1_Change()

Range("A1").Value = TextBox1.Value
If TextBox1.Value = "" Then Exit Sub
TextBox1.Text = Format(TextBox1.Value, "#,##0")

End Sub


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub
Private Sub TextBox2_Change()

Range("A2").Value = TextBox2.Value
If TextBox2.Value = "" Then Exit Sub
TextBox2.Text = Format(TextBox2.Value, "#,##0")

End Sub




Private Sub UserForm_Initialize()
UserForm1.Caption = "計算機"
With TextBox1
.Value = ""
.SetFocus
End With
With ComboBox1
ComboBox1.Value = "割り算"
.AddItem "引き算"
.AddItem "足し算"
.AddItem "かけ算"
End With
End Sub

こんなフォームをそれぞれ用意する。
Excelシート上には、あらかじめセル同士の計算式を仕込んでおいて

  • 入力がChangeする度にセルに転送
  • ボタンが押されたら計算結果のセルからデータを拾ってくる

だけである。

もちろんマクロがバグで停止しないように、考えられるユーザーのミスをIfではじくようにしておく。

あとは標準モジュールに

Option Explicit

Sub noname1()
Load UserForm1
UserForm1.Show vbModeless
End Sub

を仕込んで、ワークシート上にボタンを配するだけである。

計算機上からはコンボボックスを使用して四則演算を切り替えられるようにしてみた。
もちろん、違うコマンドボタンでいぢればもっと計算機らしくなる。

VBAって色々遊べるんだなって初めて気づいた今日この頃。
(実は、Accessで遊びたいと思って調べてたんだけど萎えたのでこうなった。)

UnityかGNOMEか

ノーパソはデュアルブートWin7Ubuntu入れてる。
まぁ特に意味はないんだが。

久しぶりのUbuntuだったので、XがUnityになっていて戸惑った…
なにせ、ソフトウェアにアクセスする方法が分からない
ソフトの名前も分からんのに検索とかムリポ

なんやかんやでイライラしたのでGNOMEに戻した。
と言っても、ただaptたんにパッケージ拾ってきてもらっただけなんだが。

sudo apt-get install gnome

sudo apt-get remove unity

それと、標準の日本語変換ソフトの挙動が鬱陶しいです。

普通、Linuxをサーバにしたりする知識はどうやって得るものなんかねぇ
ググるよりも本とかで見る方が楽しい私に、誰か良い本紹介してくれないかなw

p.s.
ノリでVirtualBoxslackwareインストールしたは良いが、何をしくじったかFirefoxが起動しなくなりorz
何はともあれLinuxの知識は無駄に付く気がするw

12月18日 晴れ 10℃

最近思ったが、音楽データをPCで管理するのは良いが
それをあんまり聞いてない…
・何より、音楽聞くのにPCつけてプレーヤー起動するのが面倒というか
・スピーカを二階にしか設置してないからどこでも聞けないというか…
・頼みの携帯音楽プレーヤも持ってないからどこでも聞けない
・何より、イヤホンとかヘッドホン嫌いだから使いたくない
注:移動中とかは使うが、何か作業してる時にコードぶらぶらしたりPCで聞いてると移動できないのが鬱陶しくて仕方ない。
BGM用に天井スピーカを各部屋につけたいよ〜

ボーイスカウト
23日に実施予定のふれあいデー、ベンチャーは毎年恒例焼き芋。
費用は\3.718でまとまりそう。
世界ジャンボリーの発表しなくちゃだけど、スライド用意するのめんどいの大変なのでおしゃべりだけになるかな。

PC自作の件、AMD APUをコアに安く作りたい。
どこまで妥協するか難しい…
Aシリーズで頑張ってもいいけど、Eシリーズの安さには脱帽!
A6-3600とかもスペックと消費電力と値段がうまうまそうで楽しみ。
うむむ、安さでいうとやっぱEシリーズかっ

APUとは編集

AMD A8-Series APUs A8-3850 TDP 100W 2.9GHz×4 AD3850WNGXBOX

AMD A8-Series APUs A8-3850 TDP 100W 2.9GHz×4 AD3850WNGXBOX

RadikoRecorderの使用制限回避

ちょっと時代遅れな話題。
IPサイマルラジオ聴取ソフトウェアにRADIKO RECORDERがあります。
このソフトは見た目もよく、予約録音もたくさんできる優れものです。

しかし、東北地震以降の制限解除等によるネットワーク負荷を軽減するためサービスが停止されています。
公式サイトによると

初期設定状態では起動時にこのダイアログが表示され、ソフトが起動出来ない様になっています。

現在、被災地域に向けたエリア制限解除でradikoサーバーへのアクセス・回線負荷の増加が予想されますので、
一時的にこのような処置を取らせてもらっています。このソフトを利用して頂いているユーザーの方々には大変申し訳ありませんが、
何卒ご理解の程よろしくお願いいたします。

元々この表示はRADIKO RECORDERを使用して、radikoサーバーに意図しない負担が掛った場合に備えて利用を自粛してもらう目的で、
初期バージョンから現在のバージョンに至るまで、すべてのバージョンに付けさせて頂いています。
これは最新バージョン番号が「99」の時にのみ表示される仕組みになっていますので、
設定の「起動時に最新のリリースをチェックする」を無効にしたり、起動にネットに接続されないようにすれば表示されません。
また既に予約登録済みの場合は、終了確認ダイアログから「いいえ」を選択すると引き続き利用可能です。

ということらしいです。

とはいえ、自動更新をオフにすればいいのでプログラムが自動更新を行う前にチェックボックスをいじりに行きます。

理屈は簡単で、
ファイアウォールRADIKO RECORDERのエントリを削除しておき学習モードで待機させる
RADIKO RECORDERを起動
ファイアウォールにもよるがアクセス許可を求めるポップアップが出てくるはず。
→許可を与えずにRADIKO RECORDERのオプションを開き、「全般」タブへ移動
→自動更新を無効にする。
→通信を許可する。

上の方法で更新情報を取得しなくなるので普通に聴取できます。
なお、人によってはネットアクセスの前に内部dllアクセスの可否を聞かれると思うので

.dllに関係する質問は許可して下さい。

とはいえ録音なんて滅多にしないので出番無いかもw
公式アプリがもっとスマートでスキン変更とかに対応してたらいいのになー

ffdshow私流ー高画質?高音質?-

動画を高画質で見たいときによく使われているデコーダ、もといプロセッサといえば、言わずと知れたffdshowフィルタでしょう。
今回は私の使用感から選んだ設定を書いていこうかと。
過去にも一度書いてますが色々いじってみたので新しく書いていきます。
あくまで個人的な意見なのでそこんとこよろしく。

今回使用したのは、ffdshow 2009/12/8 stableバージョン rev.3154
64bit、32bit版共に設定は同じです。
こちら64bit環境なのでMPC-HCとffdshowを64bitで入れていたんだが、ReClockが32bitだったので動作せず
結局32bit版を使用しています。
CCCPでインストールした後に本家から最新のStable版を落としてきても良いかもしれない。MPC-HC付いてくるしね

cf.)筆者環境
CPU:1st generation Corei7 870
メモリ:4GB
GPU:GeForce GTS 250 512MB
OS:Windows7 Ultimate 64bit

まず、ffdshowの設定で確かめないといけないことはH.264の再生にffmpeg-mtが選択されているかどうかです。
スタートメニュー→ffdshow→ビデオデコーダの設定を起動
・一番上のコーデックをクリックしてH.264デコーダをffmpg-mtにする。

それでは、ここからは設定を箇条書きにする。

  • インターレース解除
    • インターレース解除にチェックを入れる。
    • 方法は、「Yet Another DeInterlacing Filter(yadif)」
    • フレームレートを二倍にするにチェック。
    • フィールド順は、「自動」か「Top field first」にすればいい。


  • ポストプロセッシング
    • ポストプロセッシングにチェックを入れる。
    • プリセットを選び、「クオリティの自動コントロール」にチェックを入れる。
    • 処理の方法の下「mplayer」と「正確なブロック低減」にチェックを入れる。


  • リサイズ、アスペクト ※PCスペックによってはカクカクする原因になる。
    • リサイズ、アスペクトにチェックを入れる。
    • 横幅と高さを指定する、もしくは横幅を指定するを選択。
    • 画面サイズに合ったサイズを入れる。
    • 隣の、次の場合にはリサイズするを選択し、X<####またはY<#### (#の中身は隣で指定したサイズ)
    • 例、新しいサイズ 1920 1080なら X<1920 または Y<1080 とする。
    • アスペクト比率は、修正しないを選択。


  • リサイズ、アスペクト→設定を開く
    • リサイズの設定の中、「輝度のメソッド」横のボックスをLanczosにする。
    • Number of tapsを右に回しきる。
    • 「正確な丸め処理」にチェックを入れる。


  • 出力
    • サポートされた出力色空間はRGB32のみにする。
    • その下「YV12からRGBへの高品質変換」にチェックを入れる。
    • ピクセルアスペクト比を出力メディアタイプに設定する」「再生中の出力形式の変更を許可する」を半チェックにする。(■にする)


  • 出力→RGB conversionを開く
    • 基本的に全部自動にする。
    • 「YV12からRGBへの高品質変換」「ディザリング」にチェックを入れる。
    • ディザリングは人によって切ってる人も居る。量子化されたデータとデータの間をアナログのように埋めるため、データを組み合わせて中間値を生成するというもの。少しぼやけて感じるかもしれない。


んで、ここからは好みの設定。
もしくはPCスペックとの相談なのかな?
筆者の環境ではなぜか音ずれが訪れるので使用していません。

  • DeBand
    • これを使うとアニメなどでよくあるバンディングノイズが低減するというもの。
    • 確かに画質良くなるっぽい。
    • 「DeBand」にチェックを入れる。
    • 閾値をスライドさせてノイズ除去レベルを選ぶ。1.5ぐらいが良いとされている。デフォルトは1.2
    • というか1.2で使っていると音ずれ+カクカク現象に悩まされました。
    • 画面全体の変化が多い(画面全体が回転したりとか)と処理が間に合わず動画が遅れます。
  • レベル
    • これは、白と黒のコントラストをコントロールするもので、これを入れるとコントラストが激しく良くなります。
    • モードをOriginal以外のものにして下さい。Originalは激しくおおざっぱです。
    • レベルオプションの真ん中あたり、「自動設定」にチェックを入れる。
    • これで動画中リアルタイムでコントラストを変化させてくれます。
    • やってみると分かると思いますが、輝度が急激に変化することが多いアニメではそれについていけず、白飛びしたり色がおかしくなったり暗転したりしちゃいます...


  • シャープ化
    • その名の通り画像をシャープにします。
    • シャープフィルタは「unsharp mask」か「asharp」が良いと思います。
    • unsharp mask なら強さを40〜50ぐらいで
    • asharp は「高品質ブロックフィルタリング」にチェック。最適値は割り出していないので各自お願いします。
  • ワープシャープ
    • これもシャープフィルタの一種ですが、普通のシャープ化とは違い輪郭が激しく変わってしまうので好みで使ってみて下さい。

あと、低画質(ノイズ的な意味で)な動画を見るときはノイズ低減を使ってみてもいいかも
これは動画データに大きな変化をもたらすので、高画質の映像を見るときはオフにしておかないといけません。

あとプレーヤの設定によってはraw video decoderみたいなのとvideo decoderの二つが現れることがありますが、この場合raw video側のフィルタは基本的にオフにしておいて下さい。
video decoder側でフィルタをかけること。
それと、両方のフィルタをオンにしていると2倍かかったり処理落ちするので絶対にしないこと。
リサイズとかインターレース解除とかを前段でやって、シャープとかを後段側でやるとかしてもいいかも。


ここからはオーディオ側の設定
基本的には触るとこは特にないんだが
好みでいじってみるといい

  • プロファイル/プリセット設定→プロセッシング
    • チェックボックスは全部チェックする。
    • 「ノイズシェービング」は、なしに設定。
    • ディザリングは動画同様既存のデータで中間値を生成するアルゴリズム。好みで…


  • リサンプル
    • 48000で出力されるように設定する。
    • 個人的に48000以上は高音質化に関して逆効果だと思うし負荷も大きい。
    • リサンプルにチェックを入れる。
    • 以下にリサンプルするの隣を「48000」にする。
    • モードは「libsamplerate Sinc 高音質」か「libavcodec 最高音質」のどちらかにセット。
    • サンプルレートが以下の場合はリサンプルする。を「より低い 48000」とする。


  • ミキサー
    • 自分の環境に合わせてセットしておけばおk
    • 私の環境では分からないがReClock使うと2スピーカ以上出来ないかもなので注意。
  • 出力
    • ReClock使う人は必ず16bit整数のみにチェックを入れるようにしておくこと。
    • それ以外だと音出ません。
    • デジタル使う人は一番上のチェックも入れておくと良い。

以上でffdshowの設定は終わり。
ffdshowは再生中に自由に調整できるので自分の手でいじってみるのも良いかもしれない。
タスクトレイ内のffdshowのアイコンをダブルクリックすれば設定画面が出てくる。
青がオーディオ、赤がビデオである。

ffdshowを使うためのKMplayerとMPC-HCの設定は違う記事で書くことにする。

以上。

2011年12月25日追記

ドライバが改善したためか、標準状態で十分な音量が得られるようになりました。
聞き比べてみると、SRSは高音が補正されていて綺麗に聞こえます。
とはいえ、これでSRSともおさらばです。

ThinkPadx220 音量補正

ThinkPadx220のスピーカはドライバの影響か音量が小さいです。
音量最大でも全然聞こえません。
プレゼンでも外付けスピーカ必須ですし、何よりYouTube見たりするのに一々ヘッドホン使うのは面倒です。

この前偶然にも解決策の一つに出会ったので紹介します。
何かというと、WindowsMediaPlayerでもReclock使えないものかと調べてる時に
「WindowsMediaPlayer プラグイン」で検索したことから始まったわけですが,,,

Microsoftが提供するWindowsMediaPlayerのプラグインに関するページの下の方に
「SRSエフェクト」プラグインなるものがあるのが分かると思います。

それをクリックするとこのページに飛ぶと思うので
そこにあるFreeVersionをクリックします。

するとダウンロード画面が表示されるので、必要事項を書き込んでダウンロードしてください。

あとはこれをインストールすればおkです。

インストールが完了するとコンフィグ画面が出てくるので、「Start」を押して設定を行います。
これはどのサウンドバイスに接続するかを指定するための設定です。
デフォルト設定の場合
「Start」を押してしばらくするとウィンドウ右下に「Yes」「No」と出てくるので、「No」をクリック。
またしばらくするとスピーカから風のような音が聞こえると思うので「Yes」をクリック。
注:スピーカから音が聞こえた段階で「Yes」を押せばおkです。

これで設定は終わりです。

サウンドバイスにSRSのスピーカが追加されているはずですよ。
後は、ボリュームコントロールを開いて実際のスピーカの音量を最大に、SRSスピーカの音量を20ぐらいに設定すればちょうど良いかと。
なお、このソフトはトライアル版ですのでシチュエーションは「ミュージック」以外使えませんし、環境は「ヘッドフォン」が使えなくなってます。
まぁ音量をいじりたいだけですので全く問題ありません。

恐らく、
プレーヤ→SRS→スピーカー→出力
     {  ミキサー  }
という感じになってるんだと思います。

間にフィルターが挟まるわけですし、ソフトウェアミキサーも通すので音質は残念だと思いますが
それ以前に内蔵スピーカの音質が残念なので問題ないと思いますよ。
あと、SRSエフェクトがしっかりかかるので本来のドライバで調整するよりもいい音が出ます。

ぜひぜひ試してみて下さいー

p.s.
使っている環境にもよると思いますが、このプログラムがメモリを食いつぶしてしまう時があるみたいです。。。
3GBほど食われていたときもありました。
明らかに重くなってきたらこれを疑ってタスクマネージャなどでAudioEssential…みたいなプロセスを消してあげて下さい。

とはいえ、これがないと音が聞こえないので当面アンインストールする予定はないです。