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