Excel VBA質問箱 IV

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

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


6416 / 13646 ツリー ←次へ | 前へ→

【45344】行や列の非表示範囲を変数で指定するには? GHQ 06/12/20(水) 9:59 質問[未読]
【45347】Re:行や列の非表示範囲を変数で指定するに... Jaka 06/12/20(水) 10:49 発言[未読]
【45349】Re:行や列の非表示範囲を変数で指定するに... へっぽこ 06/12/20(水) 11:00 回答[未読]
【45350】解決しました GHQ 06/12/20(水) 11:37 お礼[未読]

【45344】行や列の非表示範囲を変数で指定するには...
質問  GHQ  - 06/12/20(水) 9:59 -

引用なし
パスワード
   初めて質問させて頂きます。

行や列を非表示にする際、

  Rows("20:30").Select
  Columns("E:H").Select
  Selection.EntireColumn.Hidden = True

という構文があります。
これは直に行や列の範囲を指定していますが、
非表示範囲を変数で指定したいと考えています。

例えば、

row_start = 20
row_end = 30

という具合にinteger型の変数に値を代入し、
row_startからrow_endまでをselectして非表示したいのですが、
上記の10:20.の代わりにrow_start:row_endを入れてみましたが、
「型が一致しません」や「構文エラー」となります。
エラーの種類が違うのは、クォーテーションマークの書き方を変えたためですが、
正しい書き方がわかりません。
変数で非表示範囲を指定する場合の正しい書き方はどうなるのでしょうか?
よろしくお願いします。

【45347】Re:行や列の非表示範囲を変数で指定する...
発言  Jaka  - 06/12/20(水) 10:49 -

引用なし
パスワード
   >という具合にinteger型の変数に値を代入し
integerで扱える最大値のことをご存知ならかまいませんが、
行の場合は、Longを使っておいた方が安全です。

row_start = 20
row_end = 30
Rows(row_start).Resize(row_end - row_start + 1)

【45349】Re:行や列の非表示範囲を変数で指定する...
回答  へっぽこ  - 06/12/20(水) 11:00 -

引用なし
パスワード
   こんな書き方もアリです。

  row_start = 20
  row_end = 30
  Rows(row_start & ":" & row_end).Select

【45350】解決しました
お礼  GHQ  - 06/12/20(水) 11:37 -

引用なし
パスワード
   >Rows(row_start & ":" & row_end).Select

これでうまくいきました。
& ":" &
これがわからなかったので、助かりました。

>integerで扱える最大値のことをご存知ならかまいませんが、

恥ずかしながら、知りませんでした。
手持ちの書物を探したら、確かに-32768〜32767という制約が書いてありました。

お二方ともありがとうございました。

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