Gizport
1 回答
0
Share (facebook)
194
view
全般

EXCELで入力規則のドロップダウンリストが設定されているセルを、設...

EXCELで入力規則のドロップダウンリストが設定されているセルを、設定を崩さずにVBAで引っ張ってくる方法はありますか?
システムよりEXCELに落とし込まれた新しい「当月売上リスト」と、同じようにして前日に 作成した「当月売上リスト」を照合して、今日の「当月売上リスト」を作成しています。(今日作った「当月売上リスト」は明日になると、前日に作成した「当月売上リスト」という事になります。)
照合する理由は、作成時に「当月売上リスト」列の最後尾に「処理段階」という項目を作成して入力規則のドロップダウンリストを設定している為です。そのドロップダウンリストから担当が処理レベルを選択し、物件の処理段階を把握しています。(厳密にいうと、この「処理段階」のほかに4列ほど項目を追加(日付、備考入力欄等)しています。)
(以下、「当月売上リスト」略)
新しいリストを基盤に物件NOをキーにして、前日のリストから処理段階等のセルをCOPYのPasteSpecialで引っ張ってきています。
DOLOOPで600~800件(月末になると物件が増えていく)のでこれだけで5分~7分掛かってしまいます。Destinationで貼り付けするとドロップダウンリストの設定まではコピーされず、値だけの貼り付けになってしまうので、Paste Specialを使用していますが、ドロップダウンリストの設定を崩さずにデータを引っ張ってくるには、やはりこの方法しかないのでしょうか?出来ればもう少し速くしたいのですが・・・
このドロップダウンリストで、処理段階別の統計をとっているのでドロップダウンリストの設定は必須です。
物件名称の変更や破談、追加など頻繁にあるため、前日のリストを基盤に変更・追加されているものを新しいリストからデータを引っ張ると大変です。
特に破談になると、その物件データは落とし込まれないので、前日のリストにデータはあるが、新しいリストにデータはないという事になります。そのため、新しいリストを基盤にしています。

Public n As Long ’minにはデータ範囲の最初の行番号が格納されています。
(...略)
Sheets("売上リスト(全体)").Select
n = min
With Sheets("売上リスト(全体)")
Do While .Cells(n, 1).Value <> ""
物件NO = .Cells(n, 1).Value

If Not Sheets("前日データ").Columns("A").Find(what:=物件NO) Is Nothing Then
Worksheets("前日データ").Columns("A").Find(what:=物件NO).Offset(0, 20).Resize(1, 5).Copy
Worksheets("売上リスト(全体)").Range(.Cells(n, 21), .Cells(n, 25)).PasteSpecial
End If
End With
(...略)
n = n + 1
Loop

拙い文章で申し訳ないのですが、回答をお願いします。
Yahoo!知恵袋 4360日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
「提示されたコードの実行スピードが遅いので、もっと速くなる方法はないか?」
ということでしょうか?

速くなるがどうかは解りませんが、一言。

①Findで、検索範囲に2度アクセスするのは、いかにも遅くなりそうに思えます。
もしやるなら、
1)Set命令で、Findの実行結果を変数に入れておき、その参照を利用する
または
2)Findを使用せず、MATCHなどの関数を使う。このときも、検索結果を変数に確保しておく。
(「WorksheetFunction オブジェクト」で一般機能の関数を利用できるのはご存知かと)


上記で2割くらい早くなるかも。

②前日データの検索範囲
現在はA列全体を検索対象になさってます。
これを「A列でデータがある範囲」にしたほうが速くなるのかもしれません。

#実機で試してないので、あくまで想像の範囲での回答です。
Yahoo!知恵袋 4346日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
40
Views
質問者が納得快適にできると思います。 ただいまさら4770Kを使うのはどうでしょうか。 4790Kにしましょう。 他の方も行っている通りK付きの場合であればZ97にするかK無しにしたほうがいいです。 あとHDDのWD緑はエラーが比較的出やすいモデルなので避けた方が無難です。 そこ青の1TBにするなどして少し削り、SSDを256GBにしましょう。 BF4等はSSDに入れるとロードが短縮できます。 128GBではパッツンパッツンになりますのでオススメしかねます。 SSDはSundisk製で良いかと。TOSHIBAまだちょっ...
3476日前view40
全般
43
Views
質問者が納得「提示されたコードの実行スピードが遅いので、もっと速くなる方法はないか?」 ということでしょうか? 速くなるがどうかは解りませんが、一言。 ①Findで、検索範囲に2度アクセスするのは、いかにも遅くなりそうに思えます。 もしやるなら、 1)Set命令で、Findの実行結果を変数に入れておき、その参照を利用する または 2)Findを使用せず、MATCHなどの関数を使う。このときも、検索結果を変数に確保しておく。 (「WorksheetFunction オブジェクト」で一般機能の関数を利用できるのはご存知...
4360日前view43
全般
63
Views
質問者が納得演算誤差で出る微小な値が表示されていないかと思われます。 セルの値が同じと言っているのは、見た目ですね。 =N3=O3 としてTRUEが返されるなら、打つ手はありません。 FALSEが返されるときは、ROUND関数で端数を処理します。 =ROUND(N3,0)=ROUND(O3,0) 今度はTRUEになりますか?
4359日前view63
全般
39
Views
質問者が納得肝心な接続方法が書いてありませんが、VDSL方式で、なおかつ通信速度の遅い無線方式の場合は、ネット混雑時にはこのようなことは、当然のごとく起こり得ます。 対処法としては、無線でやってる場合は有線でやる事。有線でやってるのにこんな状態の場合は、配線方式をVDSL方式ではなく、自分の部屋のONUまで光ケーブルで引いてくる、光配線方式に変えてもらう事。 これ以外に対策はないと思います。 ただ、賃貸マンションの場合は、貴方だけのために特別に光ケーブルを引いて来る、なんてことは許可されないとは思います。 許可さ...
4422日前view39
全般
52
Views
質問者が納得>私は携帯サイトではテンプレサイトを使わなくてもサイトを組み立てれたのですが 携帯サイトは独自タグがありますからね。実際に一からタグ打ちをする段になって戸惑うことは良くあることです。 >テンプレートもダウンロードをしましたが、逆に手が止まってしまい テンプレートはある程度HTMLタグ、CSSなどの知識があってこそ有効に使えるものです。 >Nvuを初心者なりに使い、htmlに変換しようとしても、 そもそも、テンプレートは、基本、タグやスタイルシート部分は弄らなくても使えるようになっています。つまり、日本語...
5365日前view52

関連製品のQ&A