2017年3月18日土曜日

[Excel] 全ての文字列の数だけをカウント

数値を除いて、全ての文字列のセル数をカウントする場合は、COUNTIF 関数でシンプルに実現できる。

=COUNTIF(A1:D10, "*")

これでカウントされるもの
  • 文字列
  • 表示形式が文字列のセル
  • 関数の戻り値が文字列のもの

(例)
文字列abc ○ 
数値123×
表示形式が文字列abc
123
表示形式が数値123×
関数の戻り値が文字列=IF(TRUE, "abc")
=IF(TRUE, "123")
関数の戻り値が数値=IF(TRUE, 123)×

[VBA] 保存すると「ファイルが既にあります。置き換えますか」

例えば、VBAでExcelファイルにパスワードを付けて保存したいときに、
「**という名前のファイルが既にあります。置き換えますか?」
というダイアログが出てしまうという件について。

これは恐らく SaveAs というメソッドで保存しようとしているのでは?

SaveAs というのは、「名前を付けて保存」と同じですから、
「上書き保存」にすれば、こういった問題は起こりません。

Dim WB As Workbook
(中略)
WB.Password = "password"
WB.Save


DisplayAlerts を操作してダイアログを抑えるように、暫定対応しようとする人が多いのですが・・・
Application.DisplayAlerts = False
Call WB.SaveAs(Filename:=WB.Name, Password:="password")
Application.DisplayAlerts = True



(参考)
Workbook.SaveAs メソッド (Excel)
https://msdn.microsoft.com/ja-jp/library/office/ff841185.aspx

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日以前にホワイトプランへお申し込みの場合、解除料金はかかりません。」