【Excel VBA】参照するキーが無いときはどうする?
YouTubeでも紹介しています。是非ご覧ください。
今まで、初体験でした。
参照するキーがなく、データを転記することになるとはね。
データベースは、正しく作成しましょう。
そんな馬鹿な?
こんにちは。伊川(@naonaoke)です。
題名で、釣ったわけではないのですが、
いや、俺がばかなだけなのか、わかりません。
競馬のデータベースばかり作成しているので、忘れたかもしれません。
最近、会社で、やたら個人情報の転記の業務がありました。
個人情報は、怖いので、コピペをするくらいなら、VBAで転記します。
しかし、参照するキーがないので、5分ほど、固まりました。
その対処法を紹介します。
このブログはこんな人にお勧め
転記業務がやたら多い人
参照するキーがなくて困っている人
VLOOKUP神話を信じている人
このブログを、読み終わるころには・・・・
創意工夫で、何でも出来てしまいます。
本当は、関数で、サクサクやりたかったのですが、できませした。
解決策は、For eachで解決しました。
For each Next構文
For Next
Do Loop
この次位に有名でしょうか?
田中先生が、For eachで配列を利用する場合は、ほとんどないと、仰っていましたので、その辺は無視します。
VBAでは、ほぼ、For Nextで、完了します。
しかし、例外的にも、For eachは、知っておいたほうが良いでしょう。
For Nextを理解していれば、なんてことはありません。
参照するキーがない 作業手順 その1 データベースを確認
このようなデータベースがあるとします。
上記のように整形したいのです。
まさか、郵便番号の横に、住所があるとは思いませんでした。
誰だ?こんなデータベースを作成したのはと、叫んでいました。
実は、WEB上のデータを、コピペして、データを整形します。
CSVも個人情報なので、吐き出すこともできないです。
参照するキーもないです。
参照するキーがない 作業手順 その2 For eachで解決
こんな感じで書きました。
A列の1000までに、住所という言葉があったら、
その横の郵便番号をシート2のセルB10へ転記する
そして、住所から、1こ下がって、その横の住所を、シート2のセルB11へ転記する
こんな感じで解決しました。
ここがポイント
さすがに今回は困りました。
でも、多分、この方法よりも、良い方法があると思います。
また、WEBのシステムから、コピペしていますので、転記したいワードの位置がずれるとおしまいです。
その辺のところは、もっと上手くコードの記載が必要なのでしょうが、緊急でしたので、こんなコードになりました。
Excelのループは、要領よく利用することが大切ですね。
まとめ
もっと良い方法があれば教えてください。
よろしくお願いします。
サンプルファイル
私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。
勉強したい方、会社の実務で利用したい方にお勧めです。
はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。
まして、ネットのコードは、作動するとは限りません。
料金は、200円です。
よろしくお願いします。
ここから先は
¥ 200
よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。