Sub SetCampaignFlag()
Dim stKonyuList() As String
Dim c As Long
For c = 2 To Range("F65536").End(xlUp).Row
ReDim Preserve stKonyuList(c - 2) '←(質問箇所)こちらです。
stKonyuList(c - 2) = Range("F" & c).Value
Next
For c = 2 To Range("B65536").End(xlUp).Row
'以下のIf文の中で、関数からの戻り値を利用している
If IsExists(Range("B" & c).Value, stKonyuList) Then
Range("C" & c).Value = "○"
Else
Range("C" & c).ClearContents
End If
Next
End Sub
ゲストさんの投稿
(投稿ID: 2326)
お世話になっております。
1点質問があります。
下記のサブプロシージャーに
(C-2)とありますが、-2は、なぜついているのでしょうか。
ご教授ください。
よろしくお願い致します。
ゲストさんのコメント
(コメントID: 3741)
配列のサイズは過不足なく宣言したいわけです。
2行目にしかデータがなかったら、要素数1で十分ですね。
そのとき、
redim preserve hoge(0)
でOK。
2行目から3行目までにデータがあるとき、要素数は2ですね。
そのとき、
redim preserve hoge(1)
でOK。
2行目から4行目までにデータがあるとき、要素数は3ですね。
そのとき、
redim preserve hoge(2)
でOK。
2行目から5行目までにデータがあるとき、要素数は4ですね。
そのとき、
redim preserve hoge(3)
でOK。
...。
2行目からc行目までにデータがあるとき、要素数はc-1ですね。
そのとき、
redim preserve hoge(c-2)
でOK。
...
ということなのですが、この説明でご理解いただけましたでしょうか。
ゲストさんのコメント
(コメントID: 3744)
丁寧な解説ありがとうございました。
ご回答いただき、頭がクリアになりました。
>ゲスト さん:
>
>配列のサイズは過不足なく宣言したいわけです。
>
>2行目にしかデータがなかったら、要素数1で十分ですね。
>そのとき、
>
>redim preserve hoge(0)
>
>でOK。
>
>
>2行目から3行目までにデータがあるとき、要素数は2ですね。
>
>そのとき、
>
>redim preserve hoge(1)
>
>でOK。
>
>
>2行目から4行目までにデータがあるとき、要素数は3ですね。
>
>そのとき、
>
>redim preserve hoge(2)
>
>でOK。
>
>
>2行目から5行目までにデータがあるとき、要素数は4ですね。
>
>そのとき、
>
>redim preserve hoge(3)
>
>でOK。
>
>
>...。
>
>2行目からc行目までにデータがあるとき、要素数はc-1ですね。
>
>そのとき、
>
>redim preserve hoge(c-2)
>
>でOK。
>
>
>...
>
>ということなのですが、この説明でご理解いただけましたでしょうか。
>
>
ゲストさんのコメント
(コメントID: 3747)
v(^^*