2016年2月25日木曜日

IdeaPad で無線LAN、Bluetoothが使えなくなった

Lenovo IdeaPad S10 で、休止状態から起動すると、
無線LAN、Bluetoothデバイスが全て無効になってしまった。

確認するポイントは以下のとおり

・「内蔵無線デバイススイッチ」がオフになっていないか確認

左側面のスイッチ(SDカードスロットの上 6番)をオンにします。


・「Lenovo ワイヤレス・デバイス設定」がオフになっていないか確認


キーボードにこのアイコンがある(IdeaPad ならば F5)ことを確認して、[Fn] + [F5] キーを押します。


「Lenovo ワイヤレス・デバイス設定」画面を開いて、使用するものをオンにします。

2015年10月24日土曜日

[VBA] Set Nothing しても、Nothing にならない

VBA の参照型変数に Nothing を代入しても、Nothing にならないケースがある。
これは変数の定義方法が影響するためです。

変数の定義に New を付けると、オブジェクトを最初に参照したときにオブジェクトの新しいインスタンスが作成されます。
Dim Obj As New Collection
Obj.Add "Sample1"
とすると、2行目で Obj を参照するので、ここでインスタンスを作成した後で Add メソッドを実行します。

同様に、Set ステートメントで Nothing を代入しても、次にこのオブジェクト(変数)を参照したときに新しいインスタンスが作成されてしまいます。例えば以下の場合は・・・
Dim Obj As New Collection

Set Obj = Nothing
If Obj Is Nothing Then  ' ここで新しいインスタンスを作成する、Nothing にならない!
    Debug.Print "Nothing"
Else
    Debug.Print "Collection"  ' こちらを通過します
End If
こういった Nothing の判定が必要な場合は、変数の定義で New を指定せず、以下のようにします。
Dim Obj As Collection
Set Obj = New Collection

■ 参考資料

Dim ステートメント (Visual Basic)
https://msdn.microsoft.com/ja-jp/library/7ee5a7s1.aspx

2015年8月14日金曜日

ネットワーク先にあるCD/DVDを再生する。

光学ドライブが無いノートPC等では、ネットワークで繋がったPCのドライブからCD/DVDを使うことができるが、市販の音楽CDや、映画DVDを再生することができない。

■ 映画DVD(DVD-Video)の場合
DVD-Videoでは、映像データは VIDEO_TS フォルダの中にあるファイルなので、自分で複製して作ったDVD等のコピーガードが無いメディアならば、ネットワーク越しに各再生ソフトでアクセスできる。

ネットワーク越しでは、各再生ソフト/リッピングソフト(リッパー Ripper)は通常のファイル操作を行なってしまう。

「ネットワーク ドライブの割り当て」でも、「光学ドライブの共有」でも、ネットワーク越しだと「ネットワーク ドライブ」として認識するので、再生ソフトでは同じ動作(通常のファイル操作)になってしまい、コピーガードがあるとネットワーク経由で再生できない。ネットワーク経由で再生するならば、ネットワークメディアプレーヤー機器が必要です。

■ 音楽CD(CD-DA)の場合
拡張子が.cdaとなっているファイルが確認できるが、これは音声データではない。音楽データはCDトラックの内側から外側へ記録されているもので、PCにおけるファイルではない。
ネットワーク越しでは、各再生ソフト/リッピングソフトはファイルの操作を行なってしまうので、このままでは難しい。こちらもネットワーク経由で再生するならば、ネットワークメディアプレーヤー機器が必要です。

[Windows] MDACのバージョンを確認する方法

Microsoft Data Access Components (MDAC) のバージョンを確認する方法
https://support.microsoft.com/ja-jp/kb/301202

ただしサポートにある「Component Checker ツール」は古すぎて機能しないので、レジストリで確認するしかないだろう。現在では、MDAC から Windows DAC に入れ替わっているが、レジストリからのバージョン確認方法は有効でした。

Component Checker ツールのエラーメッセージ「Component Checker is not supported on Windows Vista and later Windows OS's, since MDAC files are protected on these platforms」

MDAC/Windows DAC を利用するアプリケーションの開発/動作環境
https://msdn.microsoft.com/ja-jp/data/gg607260.aspx

2015年8月2日日曜日

SoftBank 名義を変更したら、2年縛りが付いてしまう

ソフトバンク携帯(iPhone)の名義を変更したら、ホワイトプラン(i) が、ホワイトプランR(i)に変更されてしまった!
ホワイトプランR というのは、最近の政治・ニュースで問題化している「2年縛り」契約です。

新しいホワイトプラン(ホワイトプランR)のご案内
https://mk11.my.softbank.jp/mb/html/pc/price_plan/white_plan_r/

携帯「2年縛り」是正 総務省の有識者会議が提言へ
http://www.sankei.com/economy/news/150715/ecn1507150041-n1.html

古くから使い続けている 旧ホワイトプラン であれば、「2年契約」の縛りは無いので、例えば家族間で名義を変更するだけで「2年縛り」が付いてしまうのでは、今さら名義変更しないほうがいい。

SoftBankショップの説明としては、
・旧ホワイトプランと、ホワイトプランRは同じ内容
・旧ホワイトプランは、もう契約できない。

ただ自分で調べてみると、相当だまされていることが分かる。これは契約時に直ちに拒否しないと酷い目に遭います。
・本当に同じ内容? →「2年縛り」の有無が異なる。
・旧ホワイトプラン は、一旦は受付終了のアナウンスが流れたが、延期されて未だ終了していない。

一部料金プランおよび割引サービスの受付期間を延長
http://www.softbank.jp/mobile/info/personal/news/price_plan/20141126a/

ホワイトプラン(i)
http://www.softbank.jp/mobile/price_plan/iphone/white-plan/
なお、ご加入中のお客さまは受付終了後も継続してご利用いただけます。

解約する際の契約解除料はいくらですか?
http://faq.mb.softbank.jp/detail.aspx?cid=10604&id=10604
「2010年4月26日以前にホワイトプランへお申し込みの場合、解除料金はかかりません。」

2015年4月5日日曜日

[MSAccess] テーブルで表示のフォーマットを指定する

Microsoft Access で、テーブルのデータシート ビューの表示でフォーマット(書式)を指定する方法です。

テーブルの場合は、デザイン ビューを開いて、出力フォーマットを指定したいカラム(フィールド)のプロパティから、「書式」を変更します。

テーブルのデータに書式を設定する
https://support.office.com/ja-jp/article/テーブルのデータに書式を設定する

クエリも同様にデザイン ビューを開いて、フィールドを選択して「書式」を変更することで変更できます。いずれも Null の表示には影響しません。

2015年4月4日土曜日

[MSAccess] SELECT INTO でデータ型を指定したい

Microsoft Access の SQL では、SELECT INTO ステートメントとは、テーブルを作成して検索結果を挿入します。作成するテーブルにおけるフィールドのデータ型は、クエリの元になるテーブルのフィールドのデータ型とフィールド サイズを継承しますが、SQL 関数などを使用すると適切なデータ型に判定されません。(多くはテキスト型になる)

■ データを直接指定した場合

以下の結果となりました。(Microsoft Access 2007)
SELECT
  0 As Col1,
  0.1 As Col2,
  50000 As Col3,
  '0' As Col4,
  #2015/04/01# As Col5,
  True As Col6,
  Null As Col7,
  IIF(True, 1) As Col8
INTO テーブル1
上記の実行結果
挿入する値データ型の判定結果
0長整数型 (Long)
0.110 進型 (Decimal)
50000長整数型 (Long)
'0'テキスト型 (Text)
#2015/04/01#日付/時刻型 (Date/Time)
True整数型 (Integer)
Nullバイナリ型 (Binary)
IIF関数長整数型 (Long)
今回は、それなりに判定されています。

■ データ型変換関数を使う場合

期待通りのデータ型に判定されていないなら、数値型等のデータ型を指定する場合は、データ型変換関数を使うことで判定を誘導できる。ただしデータ型変換関数では Null はエラーになってしまうため、Not Null 制約がある項目でしか使えない。
データ型変換関数データ型の判定結果
CBool(1)整数型 (Integer)
CByte(1)整数型 (Integer)
CCur(1)通貨型 (Currency)
CDate(1)日付/時刻型 (Date/Time)
CDbl(1)倍精度浮動小数点型 (Double)
CInt(1)整数型 (Integer)
CLng(1)長整数型 (Long)
CSng(1)倍精度浮動小数点型 (Double)
CVar(1)テキスト型 (Text)
CStr(1)テキスト型 (Text)
これも、それなりに判定されています。(完全ではない)

■ データ型変換関数を使う + Null 対策あり

Null 対策が必要であれば、ひと工夫してみると・・・、Null の場合はこの足し算結果が Null になるが、実行時エラーにはならない。
1 + CBool(True)倍精度浮動小数点型 (Double)
1 + CByte(1)倍精度浮動小数点型 (Double)
1 + CDate(1)日付/時刻型 (Date/Time)
1 + CDbl(1)倍精度浮動小数点型 (Double)
1 + CInt(1)倍精度浮動小数点型 (Double)
1 + CLng(1)倍精度浮動小数点型 (Double)
1 + CSng(1)倍精度浮動小数点型 (Double)
ほとんど「倍精度浮動小数点型」に判定されてしまった。

■参考資料

SELECT.INTO ステートメント (Microsoft Access SQL)
https://msdn.microsoft.com/ja-jp/library/office/ff192059.aspx

Access クエリで、CDec() 関数を使用すると、エラー メッセージ:「指定した式に含まれる関数で、引数の数が一致しません。」
http://support.microsoft.com/ja-jp/kb/225931/ja

データ型変換関数 (Visual Basic)
https://msdn.microsoft.com/ja-jp/library/s2dy91zy.aspx

Microsoft Access SQL リファレンス
https://msdn.microsoft.com/ja-jp/library/office/dn123881.aspx