[[20230124101841]] 『列範囲だけを取得したい』(白音) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『列範囲だけを取得したい』(白音)

列範囲だけを取得したいです。

ranga , rangb は Rangeとして
例えば
ranga = "$C$2:$H$32" または ranga = "C2:H32"
であれば
rangb = "C:H"

やりたいことは以下列幅の自動設定
Columns(ranga.Address).EntireColumn.AutoFit
だとエラーが発生したので

txtrangb = ranga.columntext とかがあれば
ranga = "C2:H32" → txtrangb = "C:H"
Columns(txtrangb).EntireColumn.AutoFit
とかできればいいなぁと

やっぱり、以下のように地道にするしかないのでしょうか?

txtrang = ranga.address
if InStr(txtrang, "$") > 0 then

  txtrang = replace(txtrang, "$", ""
endif
txtrang = replace(txtrang, "0", "")
txtrang = replace(txtrang, "1", "")
txtrang = replace(txtrang, "2", "")
  :
txtrang = replace(txtrang, "9", "")
Columns(txtrangb).EntireColumn.AutoFit

最初は
column とか columns.count とかで列番号を取ってきて
アルファベットに変換とか考えたんですけど
A-Zまでならいいのですが AA以上になるとすごく面倒なので...
上記のようにしました。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 こういうことですよね?

 Sub test()

     Debug.Print Range("A1:B1").EntireColumn.Address(0, 0)

 End Sub

(虎) 2023/01/24(火) 10:49:02


 >ranga = "$C$2:$H$32" または ranga = "C2:H32"

 >'Columns(ranga.Address).EntireColumn.AutoFit
 >'だとエラーが発生したので

    Range(ranga).EntireColumn.AutoFit

   じゃないですか?

(半平太) 2023/01/24(火) 10:51:45


 > ranga , rangb は Rangeとして
 とあるのでRange型で宣言すればいいのでは?

 Sub TEST()

    Dim ranga As Range
    Dim rangb As Range

    Set ranga = Range("C2:H32")
    Set rangb = ranga.EntireColumn

    rangb.AutoFit

 End Sub
(通りすがり助六) 2023/01/24(火) 10:56:21

 Autofitが目的だと列のアドレスなんて取得する必要なかったですね…
 失礼しました(^^;
(虎) 2023/01/24(火) 11:02:54

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.