人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelで現在のセルと1つ下のセルの数字の合計を現在のセルに上書きする、という簡単なマクロはないでしょうか。

●質問者: waf
●カテゴリ:コンピュータ
✍キーワード:Excel セル マクロ 数字 現在
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● lamer2
●10ポイント

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20.html

すぐに役立つエクセルVBAマクロ集 - Contents 開始終了- Excel VBA Macro Collection

セルの位置は、たとえば(1,2)の左側が行、右側が列です。

エクセルのシートの左上が(1,1)、その一つ下が(2,1)。

で、さきほどのマクロを好きな位置で使いたいときは、このようにiとjを好きな値を入れて使います。

-----ここから

i = 1

For j = 1 To 10

tmp = Cells(i, j)

tmp2 = Cells(i + 1, j)

Cells(i, j) = tmp + tmp2

Next

-----ここまで

上の例では、一行目の左から1〜10番目について、その下のセルの値を足して上書きしています。

エクセルのマクロについては、URLのところが詳しいです。


2 ● lamer2
●5ポイント

http://www.hatena.ne.jp/1054361193#

Excelで現在のセルと1つ下のセルの数字の合計を現在のセルに上書きする、という簡単なマクロはないでしょうか。 - 人力検索はてな

URLはダミーです。

↓このように、最初に変数に値を入れてしまってから、足し算して書き出せばいいと思います。ただし、失敗してやりなおしたくなっても、すでに書き換えられていることに注意です。

tmp = Cells(1, 1)

tmp2 = Cells(2, 1)

Cells(1, 1) = tmp + tmp2

◎質問者からの返答

何もわかっていないので初歩的な質問で申し訳ないんですが、

Cells(1, 1) というのは座標を絶対参照しているのではないでしょうか。カーソル位置のセルの値はどうやって取得すればいいんでしょうか?


3 ● charcoal
●45ポイント

http://www.hatena.ne.jp/

はてな

Sub cellplus()

Dim adderess_buff As String

Dim value_buff As Long

adderess_buff = ActiveCell.Address

value_buff = ActiveCell.Value

Range(adderess_buff).Offset(1).Select

value_buff = value_buff + CLng(ActiveCell.Value)

Range(adderess_buff).Select

ActiveCell.Value = value_buff

End Sub

簡単に作ってみました。

エラー処理は入れていません。

◎質問者からの返答

ばっちり動きました。完璧です。

ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ