エクセルVBAで入力規則で設定した列数を取得するには? 削除
Message#2 2015年2月12日(木)09時34分 From: karin |
> A列、C列E列の場合は、Columns.Countで処理すると1が返ってきます。 こちらはおそらく Sub sample() Debug.Print Range("A1,C1:E1").Columns.Count End Sub だと思いますが、こちらはA列、C列E列範囲のAreas(1)になりますので、range("A1")の列を取得しようとしています。よって結果は1で正しいです。 複数領域のセル範囲の場合は、Areasプロパティで全てのセルに対して処理を行わなければいけませんので、Areasコレクションの数だけループ処理を行い、列をカウントさせていきます。 以下がExcelVBAのサンプルコードですので、一度確認してみてください。 Sub sample() With Range("A1,C1:E1") For Each i In .Areas colCnt = colCnt + a.Count Next debug.print .Cells.Count debug.print colCnt End With End Sub > > A列〜D列の場合は、Columns.Countで処理するとちゃんと4が帰ってくるのですが、 > この現象はどうしておこるのでしょうか? > > 原因が分かる方いらっしゃいましたら、お知らせください。 > Sub sample() > > With Rows(3).SpecialCells(xlCellTypeAllValidation) > MsgBox .Cells.Count > MsgBox .Columns.Count > End With > > End Sub |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。