今まで、初体験でした。
参照するキーがなく、データを転記することになるとはね。
データベースは、正しく作成しましょう。
目次
そんな馬鹿な?
こんにちは。伊川(@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で解決
上記のように整形したいのです。
まさか、郵便番号の横に、住所があるとは思いませんでした。
誰だ?こんなデータベースを作成したのはと、叫んでいました。
実は、WEB上のデータを、コピペして、データを整形します。
CSVも個人情報なので、吐き出すこともできないです。
参照するキーもないです。
参照するキーがない 作業手順 その2 For eachで解決
こんな感じで書きました。
A列の1000までに、住所という言葉があったら、
その横の郵便番号をシート2のセルB10へ転記する
そして、住所から、1こ下がって、その横の住所を、シート2のセルB11へ転記する
こんな感じで解決しました。
ここがポイント
さすがに今回は困りました。
でも、多分、この方法よりも、良い方法があると思います。
また、WEBのシステムから、コピペしていますので、転記したいワードの位置がずれるとおしまいです。
その辺のところは、もっと上手くコードの記載が必要なのでしょうが、緊急でしたので、こんなコードになりました。
Excelのループは、要領よく利用することが大切ですね。
まとめ
もっと良い方法があれば教えてください。
よろしくお願いします。
今回のサンプルファイルは、No309 です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。