Excel VBA マクロ処理 リンク先参照変更方法で質問です。
データがあるsheet名を『データ』、
平均を集計するsheet名を『平均集計』とします。
行いたい処理は
『データ』にある【 】内の5コのデータの平均値をまとめたい。
『平均集計』に平均値を集計してまとめる。
5コデータの平均値を既に参照指定済のsheetを使用します。
***『データ』詳細**********
縦軸【1×5】×25項目 = 130行
横軸に13列 A~M列
**************************
■教えて欲しい処理部分はここ!
『平均集計』リンク参照先を一気に変更させたい。
ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照'!R[★]C:R[★]C)"
↑上記のリンク参照先を一気に変更させる方法はありますでしょうか?
例>
ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[★]C:R[★]C)"
のように…。
あと補足で、教えて欲しいのですが…
★データが追加された場合 例>5 → 7
この時行う処理方法がよくわかりません…。
単発だと
ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[1]C:R[7]C)"
で可能ですが…
↓ 複数になると…
x=1
y=7
FOR i=1 to 25
ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[x]C:R[y]C)"
x=y+1
y=y*(i+1)
NEXT
…エラーになりました。
追加処理の場合、どのような方法がありますでしょうか?
以上、アドバイスよろしくお願い致しますm(__)m
No.2ベストアンサー
- 回答日時:
こんにちは。
私は、ご質問を良く理解しているわけではないけれども、A1方式をお使いなら、FormulaLocal でやってみたらいかがですか?
>『平均集計』リンク参照先を一気に変更させたい。
これって、編集-置換で出来ませんか?マクロということもないと思います。
>補足で、教えて欲しいのですが…
最初に、Range(Cells(3, 1), Cells(9, 1)) または、Range("A3:A10") でも可
つまり、最初の「ものさし」です。
それから、本来、ActiveCell というのは、可変ですから、位置決めしたほうが安全です。あまり、記録マクロみたいな書き方をすると、返ってややこしいです。
後は、こんなことかなって思います。
Sub TestSample()
Dim rng As Range, i As Long, j As Long
'---------------------------------------
''要設定 '目的のシートの最初の範囲のアドレス
Set rng = Range(Cells(3, 1), Cells(9, 1))
'---------------------------------------
''ActiveCell の位置決めが必要 以下に設定
'Range("A1").Select
For i = 0 To 24 '最初を含めるので1を引く
For j = 0 To 12 '1を減らす
ActiveCell.Offset(i, j).FormulaLocal = "=Average(リンク参照先変更!" & rng.Offset(i * 5, j).Address(0, 0) & ")"
Next j
Next i
End Sub
お礼遅れましてすみません…。
>これって、編集-置換で出来ませんか?マクロということもないと思います。
ごもっともです。この方法が一番手っ取り早そうです。
今後この手法を活用しようと思います。
マクロ処理のご回答もありがとうございました! m(_ _)m
No.1
- 回答日時:
こんな感じ?
Sub Test1()
Dim r1 As Range, r2 As Range
On Error Resume Next
Set r1 = Application.InputBox("現在の参照先のセルを1つクリック", "現在", Type:=8)
Set r2 = Application.InputBox("新しい参照先のセルを1つクリック", "変更後", Type:=8)
Worksheets("平均集計").Cells.Replace What:=r1.Parent.Name, Replacement:=r2.Parent.Name, LookAt:=xlPart
End Sub
Sub Test2()
x = 1
y = 7
For i = 1 To 25
ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[" & x & "]C:R[" & y & "]C)"
x = y
y = x + 7
Activecell.Offset(1,0).Activate
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) AVERAGE関数とINDIRECT関数を使ってのオートフィル 3 2023/01/12 12:00
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) Excelで縦1列に並んだ大量の数字から、一定間隔で平均値を出したい。 2 2023/02/20 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MoveNextの処理速度は?
-
命令口調について
-
ubuntuで デイスク/deb/loopと...
-
パソコンでインターネット接続...
-
エラー?メッセージ
-
プログラムの規模を表す単位「k...
-
ステップカウントツールが作成...
-
逆ポーランド記法
-
VB.netでDLLを読み込んで実行す...
-
ホストアドレスの0とは
-
最大スタックサイズを大きくす...
-
VC++6.0 Stack Overflow !!
-
ミキサの原理
-
社内LANのネットワークトラフィ...
-
ブラインドタッチ、苦手なんで...
-
同じサブネットに属するIPアドレス
-
STEPについて
-
ステップ数??
-
printf / sprintf のスタック消...
-
サブネットマスクが255.255.255...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MoveNextの処理速度は?
-
[ASP]If~Else If~End If 対 Case
-
Excel VBA マクロ処理 リンク先...
-
トランザクションとは何のこと...
-
表面の導出
-
COBOLのPtoPとは?
-
プログラムの規模を表す単位「k...
-
パソコンでインターネット接続...
-
ステップ数について
-
Macと iPadの違いについて 今現...
-
ubuntuで デイスク/deb/loopと...
-
ステップ数??
-
ライン数とステップ数の違いに...
-
VB.netでDLLを読み込んで実行す...
-
女子小学生と女子中学生と女子...
-
VB6.0で #の意味
-
hdmiはパラレル?シリアル?
-
ミキサの原理
-
Ic-PcAn はどこのこと?
-
サブネットマスクが255.255.255...
おすすめ情報