3

Excel操作(重複データ削除)では、列番号を1つしか指定できないため、A~B列を指定して、重複削除が行えません。

colNumber = !列番号!

worksheet.Range(range).RemoveDuplicates Array(colNumber), header

これを

colNumber = CInt(!列番号1!)

colNumber2 = CInt(!列番号2!)

worksheet.Range(range).RemoveDuplicates Array(colNumber,colNumber2), header

とすれば、列番号1に1、列番号2に2をセットすれば、うまく動作します。

しかし、これでは2列しか指定できないので、左の列と右の列を指定できるようにするため

配列にセットする方法

Dim colNumber()

colL = CInt(!左列番号!)
colR = CInt(!右列番号!)

ReDim colNumber(colR - colL)

For i = colL To colR

  colNumber(i - colL) = i

Next

worksheet.Range(range).RemoveDuplicates colNumber, header

または、カンマ区切りの文字列を作成し、Splitで配列にする方法

colL = CInt(!左列番号!)
colR = CInt(!右列番号!)

colStr = ""
For i = colL To colR
  if colStr <> "" Then
    colStr = colStr & ","
  end if
  colStr = colStr & CStr(i)
Next
colNumber = Split(colStr , ",")

worksheet.Range(range).RemoveDuplicates colNumber, header

ですと、「プロシージャの呼び出し、または引数が不正です。」とエラーになります。

Arrayと配列は異なるのでしょうか?

どなたか解決策をご教授ください。

この質問は解決済みのためクローズされています。
Kouichi ベストアンサーとして選択しました
回答とコメントは、会員登録(無料)で閲覧できるようになります。