[[20161017233432]] 『マクロ』(パシリ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ』(パシリ)

マクロでVLOOKUpをしたいのですが、数式のコピーはその都度件数が変わるので、どうしたらいいでしょうか?教えてください。

< 使用 Excel:Excel2013、使用 OS:unknown >


 関連のレイアウトを具体的に説明すれば、すぐに回答がアップされると思います。
 さらに、VLOOKUPより効率の良い方法も提示されるかも。

(β) 2016/10/18(火) 00:07


>マクロでVLOOKUpをしたいのですが、数式のコピーはその都度件数が変わるので、
>どうしたらいいでしょうか?
質問だけでは、なぜマクロでVlookup関数を使うのか不明ですが、
(便利だが、表の一番左の列しか検索出来ないので、
マクロでやるなら同じような関数をもっと融通の利く形に作ることも可能だし、
シート上に関数を書いておいて何の不都合があるかも不明)、

「データが随時追加され、数式の参照する表のセル範囲が変わる。」ということですよね?

ならば、まずはVBAで、セル範囲を特定する方法を学ぶべきでしょう。

参考URL>>
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html

「CurrentRegion」が使える状況(または使える状況にする)なら、一番コードが簡単でいいと思います。

(まっつわん) 2016/10/18(火) 08:34


 ちょっとテーマとは離れますが、

 >>(または使える状況にする)

 まっつわんさんから非常に重要な提言がありましたので、雑感として。

 まっつわんさんご紹介の記事にもあるように、シート上のセル領域の取得方法は、実に様々な方法があります。
 ありすぎて、迷ってしまうぐらいですね。

 ただ、これらの、どれを使ってもいいということではなく、シートレイアウトの実態に合わせて「適切な」方法で
 取得することが必要ですし、逆にいえば、「適切ではない方法」で記述すると、コード実行としてはエラーにならなくても
 自分が意図した、正しい領域の取得ができないことになります。

 Q/Aであがってくる質問を見ますと、「データ処理」としては、必ずしも適していないレイアウトのものが少なくなく
 対象領域を複雑な記述で【無理やり】取得せざるを得ないことが間々ありますね。

 そういったときに、「レイアウトを、こうこう このような形に変更しましょう」と提言しても、現在のレイアウトは触ってはいけないとか
 上司が認めないとか・・・・

 でも、システム構築で、コードを書くのは最後の最後の作業で、その前に、必要データを、
 ・登録・追加・変更・削除が容易な運用しやすいレイアウト
 ・かつ、処理(関数処理であってもVBA処理であっても)しやすいレイアウト
 こういったものにする、その「設計」作業がきわめて重要です。

 で、領域の指定に話を戻しますと、対象領域を CurrentRegion として指定して【問題なく取得できる】レイアウトが
 処理上、極めて有利です。

 CurrentRegion って何者なのかは、ネット検索等で調べて理解していただければいいと思いますが
 確認方法として、自分が想定している矩形の領域の左上隅のセルを選択して、Ctrl/Shift/* を押したときに
 意図した領域が【過不足なく】選択されるかどうか、足りないところがない、余分なところもない。
 そうやって目で確認もできます。

(β) 2016/10/18(火) 10:19


(まっつわん)さん(β)さん色々ありがとうございます。VBAで、セル範囲を特定する方法が習得できずにいますので、色々勉強してみたいと思ます。初心者なため、質問もわかりずらくすみませんでした。また、教えてください。
(パシリ) 2016/10/22(土) 13:24

>VBAで、セル範囲を特定する方法が習得できずにいますので、色々勉強してみたいと思ます。
>初心者なため、質問もわかりずらくすみませんでした。また、教えてください。

別に謝る必要はないと思いますけど、
「また」でいいのですか?
いま、「どうするんだろう?」と思ったのだから、
いま、解決しちゃえばいいと思います。
ただ、具体的な例がないと、アドバイスは難しいと思いますが。。。

(まっつわん) 2016/10/22(土) 13:49


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.