![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
No.3ベストアンサー
- 回答日時:
<移動年計に関して推定する仕様>
1933年の1月から1944年12月までの合計を、”移動年計”列の12月の行に入力し、次に1933年の2月から1944年1月までの合計を、”移動年計”列の1月の行に入力する。同様に最終行の11月まで繰り返す
1933年はB列
1944年はC列
移動年計はE列
<累計に関して推定する仕様>
不明
<移動年計のコード>
Option Explicit
'*********************************
' 移動年計 メイン
'*********************************
Public Sub sample()
'集計対象範囲 ”1933年”と”1944年”
'集計結果入力範囲 ”移動年計” の列
annualTotal Range("B2:C13"), Range("E2:E13")
End Sub
'*********************************
' 移動年計
' 引数: 集計対象範囲, 集計結果入力範囲
' 備考: 集計対象範囲は2列以上、
' 集計結果入力範囲は1列以上
'*********************************
Public Sub annualTotal(srcRng As Range, destRng As Range)
'集計対象範囲を一時的に配列に入れる
Dim v: v = srcRng
'集計対象範囲の値を入れる配列を用意する
ReDim src(UBound(v, 1) * UBound(v, 2) - 1)
'集計対象範囲の値を配列に入れる
Dim c As Long, r As Long, i As Long
For c = LBound(v, 2) To UBound(v, 2)
For r = LBound(v, 1) To UBound(v, 1)
src(i) = v(r, c)
i = i + 1
Next
Next
'集計結果を入れる配列
ReDim totalArr(0) As Long
'集計の開始位置をひとつずつ後ろに
'ずらしながら繰り返す
For i = 1 To UBound(src)
Dim j As Long, total As Long
'12ヶ月分繰り返す
For j = i To i + 11
'12ヶ月
If i + 11 > UBound(src) Then GoTo label1
'足す
total = total + src(j)
Next j
'集計結果を入れる配列の要素をひとつ増やす
ReDim Preserve totalArr(UBound(totalArr) + 1)
'集計結果を配列に入れる
totalArr(UBound(totalArr)) = total
total = 0
Next i
label1:
'集計結果入力範囲に集計結果を入れていく
i = 1
'列の数だけ繰り返す
For c = 1 To destRng.Columns.Count
'行の数だけ繰り返す
For r = 1 To destRng.Rows.Count
'行、列を指定して集計結果を入力する
destRng.Item(r, c) = totalArr(i)
i = i + 1
If i > UBound(totalArr) Then Exit Sub
Next
Next
End Sub
No.1
- 回答日時:
1.セルの位置が判らないと、マクロは組めません。
1933年の文字があるセルの位置はどうなってますか。(B1であってますか)
2.売上累計はどのように計算するのですか。例として12月、1月には、どのような値が入れば良いのでしょうか?
3.移動年計はどのように計算するのですか。例として12月、1月には、どのような値が入れば良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
特定のセル範囲で4文字以上入力...
-
配列変数の添字が範囲外ですと...
-
subの配列引数をoptionalで使う...
-
2つ以上の変数を比較して最大数...
-
ListViewで、非表示列って作れ...
-
順列の作成
-
VB6 配列を初期化したい
-
このマクロの説明文を教えてほ...
-
Excel VBA配列をFunctionに渡す
-
2次元動的配列の第一引数のみを...
-
Array配列の末尾に追加したい。
-
配列で飛び飛びの値を指定して...
-
Dim は何の略ですか?
-
Excel-VBAの配列「Public Const...
-
ビンゴ
-
VBのFunctionで、配列を引数...
-
【VBA】配列とWorksheetFunctio...
-
特定のPCだけ動作しないVBAマク...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
特定のセル範囲で4文字以上入力...
-
ListViewで、非表示列って作れ...
-
《エクセル2000》A列・B列の商...
-
配列変数の添字が範囲外ですと...
-
Excel-VBAの配列「Public Const...
-
subの配列引数をoptionalで使う...
-
for each の現在の配列ポインタ...
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
VBのFunctionで、配列を引数...
-
配列内の内容を全て表示する方法
-
2次元動的配列の第一引数のみを...
-
Excel VBA配列をFunctionに渡す
-
VBA Match関数の限界
-
Array配列の末尾に追加したい。
-
AES暗号にて、AES_set_encrypt_...
おすすめ情報