![見出し画像](https://assets.st-note.com/production/uploads/images/95824191/rectangle_large_type_2_d69b946762862115af959e099035967e.jpeg?width=1200)
【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 データベースを確認
![](https://assets.st-note.com/img/1673914861466-D04Lc3sbx4.png?width=1200)
このようなデータベースがあるとします。
![](https://assets.st-note.com/img/1673914869783-JcWDdAflwJ.png?width=1200)
上記のように整形したいのです。
まさか、郵便番号の横に、住所があるとは思いませんでした。
誰だ?こんなデータベースを作成したのはと、叫んでいました。
実は、WEB上のデータを、コピペして、データを整形します。
CSVも個人情報なので、吐き出すこともできないです。
参照するキーもないです。
参照するキーがない 作業手順 その2 For eachで解決
![](https://assets.st-note.com/img/1673914886388-y4jd1gZ4PU.png?width=1200)
こんな感じで書きました。
A列の1000までに、住所という言葉があったら、
その横の郵便番号をシート2のセルB10へ転記する
そして、住所から、1こ下がって、その横の住所を、シート2のセルB11へ転記する
こんな感じで解決しました。
ここがポイント
さすがに今回は困りました。
でも、多分、この方法よりも、良い方法があると思います。
また、WEBのシステムから、コピペしていますので、転記したいワードの位置がずれるとおしまいです。
その辺のところは、もっと上手くコードの記載が必要なのでしょうが、緊急でしたので、こんなコードになりました。
Excelのループは、要領よく利用することが大切ですね。
まとめ
もっと良い方法があれば教えてください。
よろしくお願いします。
サンプルファイル
私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。
勉強したい方、会社の実務で利用したい方にお勧めです。
はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。
まして、ネットのコードは、作動するとは限りません。
料金は、200円です。
よろしくお願いします。
ここから先は
¥ 200
よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。