お願いします。
一行1件で900件程度のデータがあります。1件当たりの項目(列)は150ほどです。住所録.xlsというファイルです。
これとは別に、個別1.xls~個別30.xlsというファイルがあり、それぞれシートが30ずつあります。
このシート全てに同一の個票フォーマットを作りました。vlookupやifとvlookupの組み合わせ関数をそれぞれの該当セルに入れれば各データは取り出せるのですが、非常に重く実用に向きません。こういった作業を効率よく行えるマクロをお教え願えませんでしょうか?
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
なぜ、重くなるのか、というと、Vlookup などは、その戻り値を確保していないので、複数の場所に、そういった関数があると、すべてが連動してしまうからです。
簡単な方法は、再計算を手動にすることですが、意外に効率が落ちます。それをそのまま、マクロに以下のように移植してあげればよいわけです。
Rtn = Application.WorksheetFunction.Vlookup(検索値,範囲,列番号,検索の型)
を、Rangeオブジェクトと、数値で与えてやればよいはずです。
Rtn は、エラーも返ることもあるので、注意してください。
If IsError(Rtn) =False Then
MsgBox Rtn
End If
とでもしてください。
難しく考えないでよいと思います。
ただし、.Formula = "=式" のようなスタイルにはしないでください。
結局のところ、ワークシート関数にまさるマクロ関数はないと言っても過言ではありません。Find メソッドなど、VBAネイティブメソッドと比較すると、遥かに、ワークシート関数のほうが処理が速いです。
最後に、そのようなファイルは、Accessなどのデータベースに移したほうがよいのではないか、と個人的には思います。
ありがとうございます。
明快なご回答、是非使わせていただきたいと思います。
Accessは…会社のOfficeのバージョンアップのため、現在使用禁止令が出ていなければ使いたいところです。
No.2
- 回答日時:
間違えてたらごめんなさい。
VLOOKUPが見つけるのは全て同一行ですか?ならMATCHで行を決めてINDEXで取り出すと飛躍的に変わる筈。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
ExcelのSheetに作られたMacro1...
-
VBAで条件によってシート見出し...
-
エクセルでシートの並び替えで...
-
EXCELでワークシートを開いたら...
-
【 Excel】シートの見出しに自...
-
エクセル 行の表示非表示のマ...
-
Excelで,特定のシートを開いた...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
Excelのマクロの呼び出し元を知...
-
マクロ 各シートの決められた位...
-
【Excel VBA】シート見出しの色...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
エクセルのマクロについて教え...
-
エクセルのチェックボックス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
シートを保護した時でも並べ替...
-
EXCELのエラー
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELの起動時に常に同じ...
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
Excelのマクロの呼び出し元を知...
-
Excelで,特定のシートを開いた...
おすすめ情報