電子書籍の厳選無料作品が豊富!

VBA
縦と横をループする方法

Aシート、マスターシート、データシートがあります。
Aシートの金額が入っている列を空欄までループさせます。マスターシートの金額が入っている列を下までループさせ、Aシートの金額とマスターシートの金額が一緒だった場合、Aシートの行をデータがはいっているところまでループして、行と列がぶつかったセルの値があれば、マスターシートの金額がはいっている行をまるっとコピーして、データシートの(1,1)にはりつける。
なんだかわかりにくくてすいません。

縦と横のループを絡ませるなんてできるのでしょうか?

A 回答 (3件)

こんにちは。



まず管理方法として、どんなご商売かわかりませんが、あまり良い方法とは言えません。

まず、特定のデータを探し出す場合は、会計の場合は、会社名・日付・商品名などです。それでほぼ、小さな会社なら可能ですが、少し大きくなれば、通しの管理番号をつけるようになります。そうすれば、日付も会社名も不要になります。

おっしゃっているアルゴリズムは、金額が、「Aシート、マスターシート」の二つの中で、それぞれに固有・唯一の数字を持って、一致して実行するというbことだと思いますが、実務上ではありえません。

現実のお仕事で完成させるには、いろんな見本を見ながら、実際に、Excel等のパソコン状で試してみる必要があると思います。

また、その検索方法の
>縦と横のループを絡ませる

という考え方は、コンピュータの黎明期の頃の磁気テープことを彷彿させます。
しかし、よく考えてみると、これは、VBA言語とは関係がなく、共通言語のアルゴリズムで、縦横という列と行のマトリックスではありませんが、そういう特殊な検索方法は存在しています。アイデアとしては面白いのですが、考え方だけでは、現実には結びつかないもの事実です。

そういう私も、あまりつこんだことを言うと、専門の方に怒られそうですのでやめておきますが、それらは、VBAプログラマーには手の届かない種類といっても過言ではありません。
    • good
    • 0

こんにちは



なさりたいことがよくわからないので、何とも言えませんが…

>縦と横のループを絡ませるなんてできるのでしょうか?
普通に行っていることなので、可能でしょう。
むしろ、問題となりそうな特殊性がご質問文からは読み取れません。

「ループ」と表現しているものが、単純な走査のような処理であるなら、ワークシート関数のLookup()やMatch()、Find()などを利用した方が簡単な可能性があります。


ご質問の内容を実現することは可能そうであるとは思いますが、そのためには、なさりたいことを論理的に整理できることが必須と思われます。
    • good
    • 0

なにをなさりたいのかがよくわかりません。


画像を添付して具体的に説明していただけませんでしょうか。
マクロを作成するためには、最低でも以下の情報が必要です。
1)Aシート、マスターシート、データシートの具体的なシート名
2)Aシートの金額が入っている列
3)マスターシートの金額が入っている列
4)Aシート、マスターシートの1行目は見出しか、データなのか
    • good
    • 0

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