アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問のタイトルのままなのですが、今源泉徴収の
表を作成していて以下のエクセル標準関数を使用しています。そこで3の部分をVBAの引数を用いて代入したいのですが可能でしょうか?VLOOKUP関数に限らず、
エクセルの標準関数にVBAの変数を代入するのは無理なのでしょうか?

=VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,3,TRUE)

(例)
=VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,hensu,TRUE)
                              ↑
                   こういう事はできないのでしょうか?

A 回答 (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
が動きました。
    • good
    • 0

やや強引ですが、


一定値を返すユーザー関数にしては?

=VLOOKUP(J3:J30,源泉徴収税額表!A6:C383,hensu(),TRUE)

Function hensu()
hensu=3
End Function
って感じで・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!