プロが教えるわが家の防犯対策術!

本を見ながらマクロ作成している初心者です。
C6~C10000の範囲にある日付の最終履歴をC4に反映した後、D6~D10000の範囲にある日付の最終履歴をD4に反映・・・・という感じに繰り返し処理するマクロを作成したいのですが、どうしたらよろしいでしょうか?御指導お願いします。

A 回答 (3件)

こんにちは。



たんに、=MAX(C6:C10000) ではないでしょうか?

書式の問題は考えていませんが、あえて、マクロで書くなら、こういうことになると思います。

Sub Test1()
Dim i As Long
Dim j As Long
With ActiveSheet
 j = .Range("C6").CurrentRegion.Columns.Count 'データの列数
 For i = 0 To j - 1
  .Cells(4, i + 3).Formula = "=MAX(R[2]C:R[9996]C)" 'i+3 の3は、C列から
  .Cells(4, i + 3).Value = .Cells(4, i + 3).Value '値に変える
 Next i
End With
End Sub
    • good
    • 0
この回答へのお礼

質問に回答いただきありがとうございました。
計算式でもよかったのですが、動作が重くなり嫌だったので、何とかマクロで全て出来ないかと色々考え中です。

今後の為にもう少し詳しく回答して下さったマクロの記述の意味を教えて頂くと嬉しいです。大変あつかましいお願いですが、よろしければご指導の程よろしくお願いします。

お礼日時:2012/10/31 00:00

こんにちは。



>何でマクロについて、詳しく理解できたのですか?

私は、VBAのスタートはかなり出遅れました。それでも、スタートから紆余曲折で10年経ちましたね。

ソフトウェアよりも、本のほうにお金を使っています。しかし、今も、いい本だと思うものは、ほとんど絶版になってしまいました。私がVBAを勉強した本を言っても、多くは、ないものねだりというか、今では、プレミアが付いて容易に買えないものもあります。

唯一、入門で使っていた本で、残っているのは、
大村あつし氏の『かんたんプログラミング VBA』シリーズ(3冊)ですね。
一章をだいたい1週間単位ぐらいのペースで、疑問が沸いても誰も聞かずに、最後のページまで、パソコンに入力しながら、やり通すことですね。3ヶ月もすれば、ひと通りのことは身につきます。分からない時は、飛ばしてしまいます。途中で人に聞かないで、全体をやり終えてから、掲示板に聞けばよいです。上級文法の所は、なかなか理解できません。ただ、それを終えないと、初級が終わったことにはなりません。

天才でない限りは、勉強中は、実践向けのことをしてはダメです。特に、今回書いたようなコードは厳禁です。

ただ、方法よりも、むしろ好奇心と向上心と時間が、上達させるのではないでしょうか。

世の中にはいろんな人がいます。プログラミングが何にも知らないのに、VBAを数週間でマスターできてしまう人もいれば、毎日、コツコツと勉強しても、3年以上も掛かる人もいます。私は、後者に属します。でも、掲示板でVBAについて聞いたのは、1回だけです。「自作アドインのフォルダはどこが良いのか?」という質問でした。しかし、結局は、自分で答えを見つけました。人に聞いても、その時は納得しても、自分で見つけないといけないものが多くあります。掲示板でも、良いサンプル・コードと、そうでないコードがあります。玉石混交です。掲示板で学ぶのは難しいと思います。
    • good
    • 0
この回答へのお礼

質問に答えて頂きありがとうございました。
やっぱり地道にやるしかないようですね。しかし、私はかなり応用が利かないので、何かに頼っちゃいますが、いつかきっとさくさくマクロを作成出来る様、がんばっていきます。

お礼日時:2012/11/02 01:23

こんにちは。



#1の回答者です。

>今後の為にもう少し詳しく回答して下さったマクロの記述の意味を教えて頂く
もし、VBAを初歩から覚えるのなら、#1のようなコードを書くと上達しません。

ただ、申し訳ありませんが、私は、必要以上に、自分のコードを説明したりしないことにしています。分からない所があれば聞いてください。

VBEditor で、その文字に合わせて、F1 キーを押しますと、識別子の場合は、その説明がでてきます。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
本見てもさっぱりわからなくて・・・。WindFallerさんは何でマクロについて、詳しく理解できたのですか?

お礼日時:2012/11/01 01:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!