プロが教える店舗&オフィスのセキュリティ対策術

エクセル2016 Windows10

Activeシートの指定セルに関数を入れそれを指定行まで繰り返したいです。
例えば、

1.A4,H4,O4,V4のセルにVlookup関数【VLOOKUP(A3,INDIRECT("カテゴリー!G:H"),2,FALSE)】を入れる。
※A3,H3,O3,V3には品番が入力されています。

2.次に11行下のA15,H15,O15,V15に同じVlookup関数【VLOOKUP(A14,INDIRECT("カテゴリー!G:H"),2,FALSE)】を入れる。
※A14,H14,O14,V14には品番が入力されています。

3.その関数を入れる作業を1000行まで繰り返したいです。

マクロで行いたいのですが、指定セルに関数を入れる事は可能でしょうか?

宜しくお願い致します。

A 回答 (4件)

4行目のA列、H列、O列、V列のセルに、


「=VLOOKUP(A4,INDIRECT("カテゴリー!G:H"),2,FALSE)」の式を、マクロで入れる。  
15行目、26行目、37行目、48行目、と11行毎に、A4の行番号を変えた式にして、1000行目まで繰り返す。

Sub test()
式前 = "=VLOOKUP(A"
式後 = ",INDIRECT(""カテゴリー!G:H""),2,FALSE)"
For i = 11 To 1000 Step 11
式 = 式前 & i - 1 & 式後
Cells(i, 1).Formula = 式: Cells(i, 8).Formula = 式
Cells(i, 15).Formula = 式: Cells(i, 22).Formula = 式:
Next
End Sub

でも、これだとH14,O14,V14に品番を入力する必要はないように思います。
いつも参照してるのはA列だけですよね。

「A15,H15,O15,V15に同じVlookup関数【VLOOKUP(A14,INDIRECT("カテゴリー!G:H"),2,FALSE)】を入れる」のはなくて、
A列、H列、O列、V列のセルに、
「=VLOOKUP(★★,INDIRECT("カテゴリー!G:H"),2,FALSE)」の式(★★の部分は、式を言えるセルの上の位置のセルを参照させる)を、マクロで入れる。

Sub sample()
式前 = "=VLOOKUP("
式後 = ",INDIRECT(""カテゴリー!G:H""),2,FALSE)"
For i = 11 To 1000 Step 11
式 = 式前 & "A" & i - 1 & 式後
Cells(i, 1).Formula = 式前 & "A" & i - 1 & 式後
Cells(i, 8).Formula = 式前 & "H" & i - 1 & 式後
Cells(i, 15).Formula = 式前 & "O" & i - 1 & 式後
Cells(i, 22).Formula = 式前 & "V" & i - 1 & 式後
Next
End Sub
    • good
    • 0

No1です。



すでに、回答は出ていますけれど・・

関数式を書き換えるのは面倒なので、まとめて設定する方式での例です。
ご提示の関数式が、わざわざINDIRECT関数を用いている理由が不明なので、外して絶対参照に替えてあります。

以下、ご参考までに。

Sub Sample12984153()
Dim u As Range, i As Long
Const f = "=VLOOKUP(A3,カテゴリー!$G:$H,2,FALSE)"

Set u = Range("A4,H4,O4,V4")
For i = 15 To 1000 Step 11
Set u = Union(u, u.Offset(11))
Next i
u.FormulaLocal = f
End Sub
    • good
    • 0

>2.次に11行下の・・1000行まで 994行?1005行?


Dim n As Long
Application.Calculation = xlCalculationManual
For n = 4 To 1005 Step 11
Range("A" & n & ",H" & n & " ,O" & n & " ,V" & n).FormulaLocal = "=VLOOKUP(A" & n - 1 & ",INDIRECT(""カテゴリー!G:H""),2,FALSE)"
Next
Application.Calculation = xlCalculationAutomatic
    • good
    • 0

こんにちは



>指定セルに関数を入れる事は可能でしょうか?
可能です。

A1参照形式の式なら、セルの FormlaLocal プロパティに
https://docs.microsoft.com/ja-jp/office/vba/api/ …

R1C1参照形式の式なら、セルの FormulaR1C1 プロパティに
https://docs.microsoft.com/ja-jp/office/vba/api/ …

設定すればよいです。
    • good
    • 0

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