[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『列範囲だけを取得したい』(白音)
列範囲だけを取得したいです。
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.