5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 3055)
[2]で作ったマクロを改変し、さらに、セルD10、セルE10に各列の合計額を記入するマクロとしなさい についてセルD10 にD4からD9の合計額を表示するというマクロを作る場合にはどのような式で書くことができますか?
[1][2]については以下のようなマクロで問題なく動いたのですが、D列の値をそれぞれの項目について値を入れていくというマクロ(累積値ではなく)になったので、合計のマクロが作れませんでした。Range("D10").value=Sum(”D4:D9”).valueというのも試しましたが、15100という値のみ入りました。アドバイスいただければ幸いです。
小川 慶一さんのコメント
(コメントID: 4514)
> [3]
> [2]で作ったマクロを改変し、さらに、セルD10、セルE10に各列の合計額を記入するマクロとしなさい についてセルD10 にD4からD9の合計額を表示するというマクロを作る場合にはどのような式で書くことができますか?
> [1][2]については以下のようなマクロで問題なく動いたのですが、D列の値をそれぞれの項目について値を入れていくというマクロ(累積値ではなく)になったので、合計のマクロが作れませんでした。
やってみましょう。
まずは、いただいたコードをまずは以下のように編集しました。
[a] 変数はループより前に宣言
[b] インデントを整理。for next構文、if文内のコードはしっかり→にズラす
↑自力で改めてここまで到達してください。[a], [b]ともに大切です。
さてさて。
総計を含めるなら、以下の[p], [q], [r], [s]を含める感じですね。
> Range("D10").value=Sum(”D4:D9”).valueというのも試しましたが
↑これは、文法的にはないです。。
発展編1で扱いますが、以下ならばあり。
Range("D10").Value = Worksheetfunction.Sum(Range("D4:D9"))
なお、お題では、課題解決のために[1]→[2]と作ってきたマクロをさらに改変して[3]を作る、としていますが、ロジックの理解が難しければ、複数のForNext構文を作り、それぞれで個別に仕事をさせる、というのもありです。
例えば、以下。
さらに言えば、E列に値を入れる部分も、別のForNext構文を作り、そこで実施してもいいかも。以下。
↑だいぶ、ロジックがすっきりしますね。
Dim soukei 以下の部分をひとつにまとめなおしてみます。
↑waketeshukei_1 と同じ形に戻りました。
さらに、「For hida = 4 To 9」の2つのFor Next構文をひとつにまとめてみます。
すると、以下。
僕が動画の中で示した回答例は、↑これの souke = soukei + ... の処理をするタイミングを For migi = 4 To 10 ... Next の中にしただけです。
以下。
最後のは、ちょっと難しかっだかな。。
ともあれ、いろいろ書いてみました。今回提供したサンプルコードを動かしてみたり自分で書いてみたりとして、遊んでみてください。