|
皆さん こんにちは。
教えていただいた下記コードですが、私には非常に高度に見えます。
どうしても気になるので教えてください。
(1)
これは選択範囲の中で使用されているセルをまとめて、
bbという名前の範囲を設定するということですよね。
(2)
これは、bbの範囲の各セルの値をまとめて一気にaaに代入するということですよね。
このaaとはいったい何なのですか?? aaというオブジェクト??
(3)
UBound(aa, 1) この1はどう言う意味ですか??
UBound(aa) これだったら 直感的にわかる気がするのですが。
(4)
ここより前はaaという記述しかなかったのに、
どうして急にaa(i, 1)という記述に変わったのですか?
(5)
(2)の時もそうでしたが、どうしてaaにはValueがなくてbbにはあるのですか?
(6)
どうしてこの後処理は必要なのですか?
aaには必要無いのですか?
以上たくさん書きましたが、どのようなサイトあるいは本を見れば、このような
高度?なコードについて勉強できますでしょか?
どうかご教授ください。
> Dim i As Long
> Dim aa As Variant
> Dim bb As Range
>
>' 1,よけいな範囲は処理しない
> Set bb = Intersect(Selection, ActiveSheet.UsedRange) ←(1)
>
>' 2,セルへのアクセスはできるだけ少なく
> aa = bb.Value ←(2)
>
> For i = 1 To UBound(aa, 1) ←(3)
> aa(i, 1) = StrConv(aa(i, 1), vbNarrow) ←(4)
> Next i
>
> bb.Value = aa ←(5)
>
> Set bb = Nothing ←(6)
|
|