[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ワークシート関数をVBAで記入した時の変数』(みるく)
未だ変数が苦手でして質問させていただきます。
掲題にもあるように、ワークシート関数をVBAで記入した際
=シート名!BR3 BS3 BT3 …
と記入出来る様にマクロを設定したいのですが
下記式のBR3から列の変数をご教示戴ければと思います。
どうぞ宜しくお願い致します。
For i = 30 To 54
Range(Cells(i, 4), Cells(i, 9)).Select ActiveCell.Formula = "=[○.xlsm]△!BR3"
Next
< 使用 Excel:Excel2013、使用 OS:Windows7 >
(マナ) 2017/06/04(日) 10:13
.Formula = "=[○.xlsm]△!BR3
BR3 の部分を
= "=[○.xlsm]△!BR3"
= "=[○.xlsm]△!BS3"
= "=[○.xlsm]△!BT3"
と行の3は変わらず、列の部分を変数に出来たらと思っております。
一番最後の部分はIJ3までです。
(みるく) 2017/06/04(日) 10:16
D40:=[○.xlsm]△!BR3
E40:=[○.xlsm]△!BS3
D41:=[○.xlsm]△!BR4
E41:=[○.xlsm]△!BS4
n = 3 For i = 30 To 54 Range(Cells(i, 4), Cells(i, 9)).Select ActiveCell.Formula = "[○.xlsm]△!BR" & n & ""
n + 1
Next
上記のような形でD40,D41,D42…
と入るかと思うのですが
BRの部分をBS BT BU … II IJ
と進める術が分からない状態です…
(みるく) 2017/06/04(日) 10:33
>最終的に式を入力したい範囲は、どこですか?
(マナ) 2017/06/04(日) 10:41
D J V W X Y Z
30 BR3 CQ3 DP3 EO3 FN3 GM3 HL3
31 BS3 CR3 DQ3 EP3 FO3 GN3 HM3
32 BT3 CS3 DR3 EQ3 FP3 GO3 HN3
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
44 CO3 DN3 EM3 FL3 GK3 HJ3 II3
45 CP3 DO3 EN3 FM3 GL3 HK3 IJ3
この様な式を簡易的に書ければ良いのですが
まだVBA自体を始めたばかりで
D〜Zまで7つの式を入れていこうかと思っておりました。
何か良い案があればご教示願います。
(みるく) 2017/06/04(日) 11:04
(マナ) 2017/06/04(日) 11:33
Option Explicit
Sub test() Dim i As Long, j As Long Dim gyo As Long, retu As Long
retu = Columns("BR").Column For j = Columns("D").Column To Columns("Z").Column Step 6 gyo = 3 For i = 30 To 54 Cells(i, j).FormulaR1C1 = "=[○.xlsm]△!R" & gyo & "C" & retu gyo = gyo + 1 retu = retu + 1 Next Next
End Sub
(マナ) 2017/06/04(日) 12:19
D-I J-U V W X Y Z 30 $BR$3 $CQ$3 $EO$3 31 $BS$4 $CR$4 $EP$4 32 $BT$5 $CS$5 $EQ$5 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 44 $CO$26 $DN$26 $FL$26 45 $CP$27 $DO$27 $FM$27
1点目は
上記の様に 列行共に、増えていってしまってるのですが
行のみ3で固定する方法というのはどのようにしたら良いでしょうか。
2点目は
コードを最後まで稼動させると
本来V列に入る、DP3 DQ3... EN3までが入らずW列の番地がずれてしまい
その後 V列(式的にはW列)で止まってしまいWXYZ列が未記入の状態です。
大変お手数お掛けいたしますが
こちらもご教示願えればと思います。
(みるく) 2017/06/04(日) 13:17
Option Explicit
Sub test2() Dim i As Long, col Dim retu As Long
retu = Columns("BR").Column For Each col In Array("J", "V", "W", "X", "Y", "Z") For i = 30 To 54 Cells(i, col).FormulaR1C1 = "=[○.xlsm]△!R3C" & retu retu = retu + 1 Next Next
End Sub
(マナ) 2017/06/04(日) 13:44
マナさんには大変お手数お掛けして申し訳ございませんでした。
二回目に戴いたコードを使ってみて一列のモノを自分なりに作成する事は出来ましたので
非常に勉強になっております。
また最後に戴いたコードを調べて勉強させていただきます。
本当に有難うございました。
(みるく) 2017/06/04(日) 13:56
プログラムを書く際にはインデントを付けよう
https://note.chiebukuro.yahoo.co.jp/detail/n2870
(マナ) 2017/06/04(日) 14:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.