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

はじめて投稿いたします。
現在、エクセル2000でマクロを組んでいるのですが、何日も悩んでそこから動けないので質問させていただきます。

やりたいことは、
(1)検索フォームの入力テキストに記載した数値を読んで検索ボタンを押すと、
(2)データブック.xls内の完全に一致した数値のセルの行をアクティブにして
(3)その行のA列からO列の値をコピーして
(4)入力ブック.xlsの入力シートのB4:B18に数値だけ貼り付け
したいと考えています。
検索フォームは入力ブック.xls内で作成しています。
今のところ、(3)でA列の値を読んで、(4)でB4セルに貼りつけということはできているのですが、複数になるとできていません。

根気よく、同じプログラムを書くのが良いのでしょうか?
かなり面倒なので、もっと簡単にかける方法があれば教えてください。

A 回答 (3件)

そのような場合はforループやwhileループによる繰り返し制御を行えばよろしいかと思います。


繰り返し制御とは、一定条件を満たすまで同じ処理を繰り返すことを言います。
例えば、
 while(アクティブなセルが空白でない)
  (3)、(4)の処理
  次のセルをアクティブにする
 wend
とすると、アクティブなセルが空白になるまで、(3)、(4)の
処理を繰り返します。

上記はおおざっぱに書いているだけですので、詳細は「whileループ」や「forループ」
などの単語で検索して調べてみてください。
    • good
    • 0
この回答へのお礼

denbeeさん、回答ありがとうございます。
別ブックでそれぞれアクティブセルを移動させるのはどうしたらよいかわかりますか??
初心者なので、変数が2つ以上あるとイマイチ分からないのですが・・・

お礼日時:2009/05/13 12:56

>複数になるとできていません。


ここがちょっとわかりませんが、「二つ以上のセル」ということでしょうか。
それであればFor文を使ってやればいいかなっと思いますが・・。(論点がズレていたらすみません。)

例:
Dim i As Integer

With Worksheets(ActiveSheet.Name)
 For i = 2 To 32
  .Cells(7, 33) = .Cells(7, 33) + .Cells(7, i)
Next
End With

上はAG7にB7~AF7の値を足して行く簡単な処理です。
これをベースに考えれば、恐らく実現できると思います。(本当に論点ズレていたらすみません^^;
    • good
    • 0
この回答へのお礼

sykt1217さん、回答ありがとうございます。

個人的に最も引っかかっているのが、別ブックで処理を繰り返さなければならないところなんですが・・・。
For文を使って、考えて見たいと思います。

お礼日時:2009/05/13 13:00

>個人的に最も引っかかっているのが、別ブックで処理を繰り返さなければならないところなんですが・・・。



一個ずつができているのであれば、RangeかCellsの指定先を変数に変えてやって、For文の回すのでいいのでは?
変数は使いまわし・上書きができるのですから、値を保持しておかないといけない理由がない限りはFor文を書いてやる以外に差はないと思いますが・・・
それと、いちいちアクティブセルを指定してやる必要はないです。
アクティブセルが指定されなくても値は指定したセルに代入されます。

それともブックやシートの指定方法がわからないということでしょうか?
    • good
    • 0
この回答へのお礼

sykt1217さん、回答ありがとうございます。
このサイトの使い方をイマイチ理解していなかったもので、返信が遅くなってしまい、申し訳ありません。

ご回答をいただいてから四苦八苦しておりましたが、先ほどようやくできました!!

考え方をご教授いただきましてありがとうございました。

お礼日時:2009/05/19 11:08

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