Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14511 / 76734 ←次へ | 前へ→

【67713】Re:列数の取得について
発言  かみちゃん E-MAIL  - 11/1/3(月) 9:30 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>下記のコード中の「レコード数取得」でデータ範囲の列数を取得するようにしているのですが、なぜか取得してくれません。

どのタイミングのときの取得がおかしいのでしょうか?

・UserFormを初期化したとき
・Spin移動の値が変わったとき
・ button追加をクリックしたとき

これらのタイミングで

Public Function レコード数取得() As Integer
 レコード数取得 = Range("a1").CurrentRegion.Columns.Count - 1
End Function

のコードが実行されているのですが、
このときの
Range("a1").CurrentRegion
で得られるセル範囲が1列しかないのだと思います。

CurrentRegion
で得られる範囲は、「空白行と空白列で囲まれたセル範囲」ですので、
そのコードが実行されるときのアクティブシートのB列がまったく入っていない
のではないでしょうか?

ご自身が期待しているシートが、実行される時点でのアクティブシートになって
いるかどうかも含めて確認してみてください。

また、レコード数取得となっていますが、行数ではなく、列数の取得でいいのですよね?

なお、特定のシートの列数を取得したいならば、

Public Function レコード数取得() As Integer
 レコード数取得 = Worksheets("○○").Range("a1").CurrentRegion.Columns.Count - 1
End Function

などとしてみてもいいかもしれません。

1 hits

【67712】列数の取得について bakadeus 11/1/3(月) 9:01 質問
【67713】Re:列数の取得について かみちゃん 11/1/3(月) 9:30 発言
【67714】Re:列数の取得について bakadeus 11/1/3(月) 10:41 お礼

14511 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free