添付の表は、まっさらな状態から、vbで作成したものです。 Aブロック、Bブロック・・・と続きます。 各表の行数(ここではH列の数字)は都度変わります。

画像

Visual Basic | Excel50閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

K列黄色の上の部分は以下のコードを使用しています。 ↓ 'K列の書式設定 With Columns("H") .SpecialCells(xlCellTypeConstants, xlNumbers).Offset(0, 3).FormulaR1C1 = "=RC[-2]*RC[-1]" .TextToColumns End With With r基準セル.CurrentRegion .Columns(4).Offset(1).Resize(.Rows.Count - 1).Select End With ↑ このコードの応用でFRowとERowを設定できますか? 私が作ると、欄外に「0」が表示されてしまいます。どこが間違っているのかどうしてもわかりません。

ThanksImg質問者からのお礼コメント

ありがとうございます!できました! 10年以上のブランクの上、当時も1~2年ほど本やネットで調べるだけで独学でやっていただけなので、vbは初心者中の初心者です。数式などは直接入力すればすぐできるのに、マクロを知らない上司がわざわざマクロを使って表を作れというので、今回苦労しました。本当に助かりましたし、また勉強になりました。ありがとうございました。

お礼日時:10/27 14:00

その他の回答(1件)

0

Sub a() 'SUM関数を入れるのではなく、直接、合計の数字をセルに入れます。 '(前提条件) '値は計算式ではなく数字が入力されていること '0は空白でなく、ちゃんと0と入力されていること Dim myArea As Range Set myArea = Columns("K").SpecialCells(xlCellTypeConstants, xlNumbers) Dim i As Long Dim wsf As WorksheetFunction Set wsf = WorksheetFunction For i = 1 To myArea.Areas.Count With myArea.Areas(i) .Offset(.Cells.Count, 0).Cells(1).Value = wsf.Sum(.Cells) End With Next i End Sub

いつもありがとうございます。 このコードを参考に書いてみたのですが、「0」が入るだけで数式は反映されませんでした。 私的にはこんな小さなデータ量なら、直接セルに数式を入力した方が早いと思うのですが、上司はどうしてもVBで作ってほしいみたいです。私以上にマクロのことを知らない人なので、結構無茶な要望も出してきます。でも仕事なのでやらなければなりません。レベルの低い問題に巻き込んでしまい申し訳ありません。