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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MoveNextの処理速度は?
-
PDF化処理の処理時間 他
-
プログラムの規模を表す単位「k...
-
ubuntuで デイスク/deb/loopと...
-
パソコンでインターネット接続...
-
ライン数とステップ数の違いに...
-
hdmiはパラレル?シリアル?
-
VB.netでDLLを読み込んで実行す...
-
7bitのデータ列に1bitのパリテ...
-
_CRTIMPの意味は?
-
ホストアドレスの0とは
-
磁気ディスクの計算問題です
-
L2スイッチの管理VLANに...
-
ブラインドタッチって練習し始...
-
固有パリティについて質問です
-
ステップ数について
-
同じサブネットに属するIPアドレス
-
ブロック長について
-
シェルスクリプトについて
-
タイピングを上達させたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MoveNextの処理速度は?
-
トランザクション管理について
-
VB & SQLサーバ
-
トランザクションとは何のこと...
-
JDBCでのトランザクション・排...
-
Excel VBA マクロ処理 リンク先...
-
[ASP]If~Else If~End If 対 Case
-
ExecuteNonQueryとSelectComman...
-
COBOLのPtoPとは?
-
リフレッシュ処理の意味を教え...
-
【プログラム】論理的思考のコツ
-
パソコンでインターネット接続...
-
ubuntuで デイスク/deb/loopと...
-
プログラムの規模を表す単位「k...
-
ライン数とステップ数の違いに...
-
hdmiはパラレル?シリアル?
-
VB.netでDLLを読み込んで実行す...
-
ステップ数について
-
L2スイッチの管理VLANに...
-
Ic-PcAn はどこのこと?
おすすめ情報