##使用ソフト・プログラミング言語
使用ソフト:Access2016
言語:VBA
前提・実現したいこと
Access VBAにてExcelファイルを開き、数値を入力するセルにデータの入力規則としてドロップダウンリストを設定するコードを記述いたしました。
発生している問題・エラーメッセージ
ドロップダウンリストの行で、
VBA
1『実行時エラー'5' プロシージャの呼び出しまたは、引数が不正です』
というエラーメッセージが表示されてしまいました。
どのように修正すればよろしいでしょうか?
該当のソースコード
Dim Row, Col, RowMax, ColMax, Li() As Integer Row = 2: Col = 1: RowMax = 1: ColMax = 1 Dim i, j, k As Integer: k = 0 '繰り返し処理用カウント変数を宣言する Dim Exf As String: Exf = Dir(Path & "Q*.xlsx") 'エクセルファイル名用変数の宣言 j = UBound(QName): j = j / 2 '繰り返しの上限を設定する(クエリの数÷2) Dim Max As Integer '商品の入荷数量用変数を宣言する For i = 0 To j - 1 'Excelファイルの数だけ繰り返す '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く Set WBObj = AppObj.WorkBooks.Open(Path & Exf) '編集を実施するワークシートを設定する(最後尾のシート) Set WsObj = WBObj.Worksheets(1) AppObj.Visible = True 'Excelアプリケーションを表示する WBObj.Worksheets(1).Select 'アクティブシートを変更する【先頭へ】 'エクセル用の定数を宣言する Const xlValidateList = 3: Const xlValidAlertWarning = 2 Const xlValidAlertStop = 1 '現在参照中の行が空欄になるまで繰り返す Do While WsObj.Cells(Row, 1).Value <> "" Max = WsObj.Cells(Row, 4).Value '上限数量を取得する If Max > 40 Then '40を超過した場合 Max = 40 '上限値を40とする End If ReDim Li(Max) '配列の要素数を更新する For k = 0 To Max '配列の要素数分繰り返す Li(k) = k '配列に数値を格納する Next '数量を入力するセル For Col = 6 To 10 Step 2 '入力規則を設定する With WsObj.Cells(Row, Col).Validation .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Formula1:=Join(Li, ",") End With Next Row = Row + 1 Loop Row = 1 Next

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。