[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで張り付けた関数のセル番地が変わってくれない』(KI)
マクロ超初心者なので、ばかばかしい質問になりますが 宜しくお願いします。
下のように、E1:F6 にリストがあります。 そして、A2 を検索値にして VLOOKUP で答えを 求めるために、次のような記述をしました。
Sub test1()
Range(Cells(2, 2), Cells(4, 2)) = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
End Sub
これにより、B2:B4 には、正しくVLOOKUPの数式が書き込まれました。
次に、10行下の A12 の検索値に対応させるために下のような記述をしました。
Sub test2()
k = 10 'オフセット量
Range(Cells(2 + k, 2), Cells(4 + k, 2)) = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
End Sub
ここで質問なのですが、B12 には =VLOOKUP(A2,$E$1:$F$6,2,FALSE) と書き込まれてしまいます。 私の思いは、 =VLOOKUP(A12,$E$1:$F$6,2,FALSE) となって、VLOOKUP の検索値も A2 から A12 へと 勝手に変わってくれるものと考えていました。
K=10 としているので、数式を書き込む行は正しく行われているのに 数式の中の検索値の部分は勝手に変わってくれないのですね。
[A] [B] [C] [D] [E] [F] [1] 検索値 答え 品名 個数 [2] c 3 a 1 [3] a 1 b 2 [4] b 2 c 3 [5] d 4 [6] e 5 [7] [8] [9] [10] [11] [12] e 3 [13] d 1 [14] a 2
このような場合には VLOOKUP の中はどのようにすれば良いのでしょうか? くだらない質問をしているなということは、自分でも感じているのですが 宜しくお願いします。 (KI)
B2セルに「=VLOOKUP(A2,$E$1:$F$6,2,FALSE)」の式を入れる動作を マクロの記録にとると、数式部分もコードに成ります。
出来た数式をコピーして、現在出来ているコードの該当部分に貼り付けて使うと ご希望の様に成りそうに思います。
まぁ「A2」の 2 の所にも +k をするのでも良いと思いますが。。。
数式ですが、「""」で囲われているので、文字列です。 なので、思ったようなセル番地になった文字列が出来れば良いです。 "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)" ↓ "=VLOOKUP(A" & 2 & ",$E$1:$F$6,2,FALSE)" ~~~ここを 2+k にすると kが10の時 12 に成ります。
(HANA)
Sub rangetest() Dim k As Long k = 10 With Union(Range(Cells(2, 2), Cells(4, 2)), _ Range(Cells(2 + k, 2), Cells(4 + k, 2))) .Formula = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)" End With End Sub
ichinose
いろいろな書き方がありますが、こんなのも。 Sub RCtest() Const k = 10 Range("B2:B4").Offset(k, 0).FormulaR1C1 = "=VLOOKUP(RC[-1],R1C5:R6C6,2,FALSE)" End Sub (Mook)
皆様、早速のご回答有難うございます。 どの、やり方も試してみました 。 なるほど! と、感じました。
マクロは自動記録をしたものに ほんの少し手を加える程度のことしか 出来ませんが、この学校で目にとまった 面白そうな方法などを参考に手探りで やっているような状態です。 皆様これからも、宜しくお願いします。 (KI)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.