- ベストアンサー
エクセルの関数の引数にVBAの変数を代入できますか?
質問のタイトルのままなのですが、今源泉徴収の 表を作成していて以下のエクセル標準関数を使用しています。そこで3の部分をVBAの引数を用いて代入したいのですが可能でしょうか?VLOOKUP関数に限らず、 エクセルの標準関数にVBAの変数を代入するのは無理なのでしょうか? =VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,3,TRUE) (例) =VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,hensu,TRUE) ↑ こういう事はできないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
下記はご質問の意図とずれていますでしょうか。 hensuは第3引数で「列番号」ですね。これがVBAで 決まるのですか。 (1)VBAで求まった値を、どこかのセル(vlookupは縦列検索なので、すなわち同一列の1つのセル)にセットすればだめですか。バッチ処理的に一遍に全行値をセット(1列に)してしまうことになるでしょうが。 =VLOOKUP(A1,$D$1:$E$3,F1)という表現も可能でした。 F1に3が入っていて、3--->F1と表現。 (注)それと第1引数が範囲になっていますが、検索値の入っている1つのセルを指定するのではないですか。 (2)表引きまで含めてVBAで組んでしまうとか。 (3)Vlookup関数をWorksheetFunctionで処理するとか。 Sub test01() For i = 1 To 5 Cells(i, 3) = WorksheetFunction.VLookup(Cells(i, 1), Range(Cells(1, 4), Cells(3, 5)), 2) Next i End Sub が動きました。
その他の回答 (1)
- awada
- ベストアンサー率50% (2/4)
やや強引ですが、 一定値を返すユーザー関数にしては? =VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,hensu(),TRUE) Function hensu() hensu=3 End Function って感じで・・・。