• ベストアンサー

仕事に役立てようとエクセルのマクロを勉強しています。

仕事に役立てようとエクセルのマクロを勉強しています。 A列に何か入力されていたらB列に関数(SUM)を入力し、それを一番下まで繰り返し行う。 初心者なので、意味の様な補足を頂けたら助かります。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

> A1に何か入力されていたらB1にSUM(C1:H1)を入れる。 この仕様を満たすマクロが If Range("A1").Value <> "" Then Range("B1").Formula = "=SUM(C1:H1)" End If になります > それを、行の一番下まで(例えば、1000行目まで) 多分=SUM(C1:H1)を1000行までの全てのセルに書き込むとは思えないので その行に対応したCからHまでのSUMをすると考えると For i = 1 To 1000 If Range("A" & i).Value <> "" Then Range("B" & i).Formula = "=SUM(C" & i & ":H" & i & ")" End If Next になり > A1に何か入力されていたらB1にSUM(C1:H1)を入れる。 > それを、行の一番下まで(例えば、1000行目まで) の仕様を満たしたマクロになっていると思われます。

noname#124414
質問者

お礼

解りやすく説明までして頂いて、ありがとうございます! 機会があれば、また宜しくお願いします。

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

いくつか説明しておきます。 >A列に何か入力されていたら マクロにはイベントというのがあります。いつのタイミングでマクロを実行させるかを決めるものです。 この場合、シートモジュールに Change イベント を作成します。 シート名を右クリックして、コードの表示 をクリック VBエディターが起動したら Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then If Target.Value = "合計" Then Range("B" & Target.Row).FormulaR1C1 = "=SUM(RC[1]:RC[6])" End If End If End Sub を貼り付けて閉じます。 Target は、入力したセルのことです。 そのセルが 1列目(つまりA列)で その内容が 合計 という文字だったら 同じ行のB列のSUM関数(範囲は 1つ右から6つ右まで)を入れる といった流れです。 そちらの状況に合わせて編集してみてください。

noname#124414
質問者

お礼

補足までして頂いて、ありがとうございます。 やってみます! また、宜しくお願いします

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

勉強頑張ってください ところで > B列に関数(SUM)を入力 どのセル(どこ)をSUMするのか不明です。 > 一番下まで 一番下とは?A列の可能性もありますがシートの一番した(2003だと65536行まで)とも考えられます。 仕様が曖昧すぎますのできちんとした仕様を書けるようにしましょう。

noname#124414
質問者

お礼

今後の、参考になりました。 ありがとうございます!

noname#124414
質問者

補足

言葉足らずでスイマセンでした。 A1に何か入力されていたらB1にSUM(C1:H1)を入れる。 それを、行の一番下まで(例えば、1000行目まで)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

Dim rng As Range '変数の宣言 'A列データ入力セル範囲取得(A1~A最終行から上にジャンプして到達したセル) Set rng = Range("A1", Range("A" & Rows.Count).End(xlUp)) 'rngに対応するB列にSUM式を入力 rng.Offset(, 1).Formula = "=Sum($A$1:A1)" 「新しいマクロの記録」を活用してはいかがでしょうか。 例の場合 B1に、=Sum($A$1:A1) と入力し B1のフィルハンドルをダブルクリック あるいは A列データセル範囲に対応するB列セル範囲を選択 B1に、=Sum($A$1:A1) と入力し 編集モードでCtrl+Enter といった操作を記録してみてください。

noname#124414
質問者

お礼

遅くなりました。 解りやすく説明して頂きありがとうございます! フィルハンドル、活用してみます。

関連するQ&A