![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
合計等の計算を最終行に組み込むマクロの作成について
いつも良い回答を有難うございます。
今回は下記のような作業をマクロで行なう方法をお聞きしたく質問させていただきました。
・データのあるところまで罫線を引きたいです。
・合計を挿入したいです。
条件としては
1)データはいつも同じ位置でおわりません。
2)合計の箇所はいつも場所が一緒ではありません。
A B C D E F
部署 No. 開始日 担当者 内容 工数
茨城 1 2010/5/7 B緒 研削 6.00
茨城 3 2010/5/16 B緒 掃除 6.83
茨城 4 2010/5/18 B緒 出荷 1.50
↓
A B C D E F
部署| No. | 開始日 | 担当者 | 内容 | 工数
茨城| 1 |2010/5/7 | B緒 | 研削 | 6.00
茨城| 3 |2010/5/16 | B緒 | 掃除 | 6.83
茨城| 4 |2010/5/18 | B緒 | 出荷 | 1.50
| 合計 | 14.33
どうかよろしくお願い致します。
No.3ベストアンサー
- 回答日時:
sub macro1()
'最終行を特定する
with range("F65536").end(xlup).offset(1)
'式を入れる
.formular1c1 = "=SUM(R2C:R[-1]C)"
.offset(0, -1) = "合計"
'表全体の範囲に罫線を入れる
range(range("A1"), .cells).borders(xlInsideVertical).linestyle = xlcontinuous
'掃除
.offset(0, -5).resize(1, 4).clearformats
end with
end sub
No.6
- 回答日時:
これを機にSUBTOTAL関数の使い方を学習して下さい。
いくつ発生するかわからないのであれば1行目に合計セル、2行目から65536行目までを範囲とすれば明細いくつあっても可能です。今はすぐに結果が欲しい状況かもしれませんが、作りあげたもの、確認したテクニックは質問者自身の財産になるよう自分のモノにして下さい。対応策は人それぞれで持ってますので何通りも答えが出ることあります。
逆引き本買う事オススメします。こうやって何度も質疑応答してもらって1つずつ出来そうなのを見て行く方が対応時間のロスかなあとも思います。
No.5
- 回答日時:
マクロ希望ということなので参考程度ですが、考えうる最終行に合計行を設けておいて
オートフィルタをかけておけば2クリックで希望の表ができると思います
フィルタは(空白以外のセル)
![「合計等の計算を最終行に組み込むマクロの作」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/655143_5497e32966b0a/M.jpg)
回答ありがとうございます。
最初はその方法を考えていたのですが、マクロボタンを押せばすぐに表が出来るほうがいいため
VBAを選びました。
でもやはり難しいですね。
No.4
- 回答日時:
いつもどのような質問をしていて、今回は何をよろしくなのかが質問文からは読み取れないのですが・・・・
質問はExcelの場合でいいのかな?
>・データのあるところまで罫線を引きたいです。
マクロの何に関してがわからないのでしょうか?
Excelの機能の中に"マクロの記録"という機能があり、手作業で行った動作を記録してVBAの記述にしてくれます。
この機能を使って出来ませんでしたか(やってみて問題となったポイントは?)
>1)データはいつも同じ位置でおわりません。
これは、データ件数が変化するのでデータの最終行が何行目になるのかはわからない・・・という事でよいでしょうか?
それならば、データが連続で入力されている列の基準となる行(A1?)を選択してキーボードで Ctrl+↓ とすれば、データが入力されているに最終行が選択され、それを"マクロの記録"で記録してやれば
Range("A1").Select
Selection.End(xlDown).Select
このようになり、
これでデータの入力されている最終行が判るので、そこからなら罫線は引けますか??
もしデータの入力行に飛びがあるのなら最下段の行から Ctrl+↑ とすれば同じようにデータ入力行の最終行が選択されます。
参考
Range("A1048576").Select (Excel2007)
Range("A65536").Select (excel2003)
Selection.End(xlUp).Select
>・合計を挿入したいです。
判らない点が最終行の位置だけなら、上記の方法を応用して解決できませんか?
>2)合計の箇所はいつも場所が一緒ではありません。
一緒ではないというのは、何行目かわからない・・・・という事なのか?
それとも何列目かも判らない・・・・ということでしょうか??
何行目かはデータ件数の問題だけだろうから、もう大丈夫だと思いますが、何列目かも判らなののなら手作業で入力するときのセルの選択基準を示さないと、解決が難しいと思います。
回答有難うございました。
>Excelの機能の中に"マクロの記録"という機能があり、手作業で行った動作を記録してVBAの記述にしてくれます。
この機能を使って出来ませんでしたか(やってみて問題となったポイントは?)
マクロの記録をして見ましたが、集計データに合計を加えたいのでデータは一定ではなく、余白セルを多めに見たところにデータを置いて空白だけ消す、という作業をしても合計がエラーになってしまいます。
このコードを応用してやってみます。
ありがとうございます。
No.2
- 回答日時:
回答No1です。
次のようにするのがベターでしょうか。
Sub 合計表示()
Dim LR As Integer
Dim LC As Integer
Range("A1:X1000").Borders.LineStyle = xlLineStyleNone
LR = ActiveSheet.Range("A65536").End(xlUp).Row + 1
LC = WorksheetFunction.Match("内容", Range("1:1"), 0)
Cells(LR, LC) = "合計"
Cells(LR, LC + 1) = WorksheetFunction.Sum(Range(Cells(1, LC + 1), Cells(LR - 1, LC + 1)))
With Range(Cells(1, 1), Cells(LR - 1, LC + 1))
.Borders.LineStyle = xlContinuous
End With
Range(Cells(LR, LC), Cells(LR, LC + 1)).Borders.LineStyle = xlContinuous
End Sub
No.1
- 回答日時:
A1セルに部署があり1行目に内容や工数の項目名があるとしたら次のようなマクロでよいでしょう。
Sub 合計表示()
Dim LR As Integer
Dim LC As Integer
LR = ActiveSheet.Range("A65536").End(xlUp).Row + 1
LC = WorksheetFunction.Match("内容", Range("1:1"), 0)
Cells(LR, LC) = "合計"
Cells(LR, LC + 1) = WorksheetFunction.Sum(Range(Cells(1, LC + 1), Cells(LR - 1, LC + 1)))
With Range(Cells(1, 1), Cells(LR, LC + 1))
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlMedium
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 地域研究 つくば市と朝鮮人 3 2023/01/08 13:18
- 大学受験 共通テストで点数が取れず、第一志望の国立大学を諦めるべきか悩んでいます 2 2023/01/16 21:27
- 農林水産業・鉱業 農業協同組合の単位農業協同組合について 1 2023/05/17 21:57
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Visual Basic(VBA) Excel VBA 転記について 2 2023/02/28 08:34
- 公園・庭園 茨城観光 3 2022/12/06 14:08
- 食べ物・食材 水戸の納豆 1 2022/12/08 13:22
- その他(地域情報・旅行・お出掛け) 茨城観光 3 2022/12/13 10:21
- 消費税 控除額を安くする方法ってありますか? 控除合計 68316円で内訳は以下です。 健康保険料 1592 8 2023/08/10 15:38
- 食べ歩き 茨城県栃木県観光 2 2023/06/12 16:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
条件A→MSGBOX 条件B→マクロ実行
-
EXCELの並び替えについて
-
EXCELでセルの結合
-
整数行を残し小数点の行を削除...
-
順序立てて行う必要のある作業...
-
エクセル2003でマクロをおこな...
-
【マクロ】セル内のテキストを...
-
Excelでセル内の数式は残し値だ...
-
Excel2007 セルを右方向に削除...
-
マクロ オートフィルタ機能に...
-
エクセルで特定文字列の色つけ
-
エクセルマクロの行非表示及び挿入
-
マクロの作成について
-
セルに入れた値の行のブック転記
-
Excel にて非表示行を探すワー...
-
オートフィルタで抽出後、マク...
-
エクセルで全ての数字間にカン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
値貼り付けをしても書式も貼り...
-
エクセルで、行ごとの並び替え...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
-
VBA コピーを有効行までループ...
-
並べ替えのマクロで対象行の範...
-
Excelで周期的に列を削除する方法
-
100行のセルの高さを一括で調整...
-
yyyy/mm/ddの日付に一括変換す...
-
エクセルで連番をマクロで
-
エクセル2003でマクロをおこな...
おすすめ情報