![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- 簿記検定・漢字検定・秘書検定 有形固定資産の期中売却の取引について 1 2023/03/02 12:31
- 数学 正五角形の頂点を反時計回りにabcdeとする。二つの動点r、wが、rは頂点aを、w頂点cを出発して次 3 2022/07/22 11:40
- 日本語 「〜たり〜たり」の使い方 2 2022/06/08 21:30
- 日本語 「〜たり〜たり」の使い方 1 2022/06/05 16:25
- Excel(エクセル) エクセルで、未来の月の数値を表示させないようにしたい 1 2022/05/07 18:58
- Excel(エクセル) EXCEL値貼り付け(ある条件のもと自動化) 5 2023/06/06 12:21
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- ポイントサービス・マイル 楽天カードで番号の登録と抹消の繰り返しは? 1 2022/09/10 17:39
- Visual Basic(VBA) Excel VBAの書き方 1 2022/03/28 12:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
Dim は何の略ですか?
-
特定のセル範囲で4文字以上入力...
-
モンテカルロ法を用いた積分計...
-
50音
-
エクセルマクロで配列の値から...
-
fortranの関数?
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
《エクセル2000》A列・B列の商...
-
行列の積の計算プログラムを教...
-
配列内の内容を全て表示する方法
-
AES暗号にて、AES_set_encrypt_...
-
subの配列引数をoptionalで使う...
-
VLOOKUP関数で、一番下...
-
Excel VABについて 下記記述が...
-
メッセージボックスのOKボタ...
-
オートフィルターとExcelマクロ...
-
エクセルのマクロについて教え...
-
Excel・Word リサーチ機能を無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
for each の現在の配列ポインタ...
-
配列変数の添字が範囲外ですと...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
subの配列引数をoptionalで使う...
-
ListViewで、非表示列って作れ...
-
VB6 配列を初期化したい
-
Excel-VBAの配列「Public Const...
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
2次元動的配列の第一引数のみを...
-
VBのFunctionで、配列を引数...
-
verilogで配列の任意の8bitを取...
-
エクセルで最小値から0を除く方法
-
VBA Match関数の限界
-
Excel VBA配列をFunctionに渡す
-
VB2008: CSV を二次元配列に読...
-
fortranでのcsvファイルの読み込み
おすすめ情報