vbaの場合 データの整形の必要があるか
ケースバイケースと言われてしまいそうですが質問させていただきます。vba初心者で現在簡単なツールを作成しようとしています。(先ほど質問させて頂きました)
以下長くて申し訳ありません。
vbaの解説書などを見ると、
「マクロ記録で手作業で行ってみて、修正や追記していくのが良い」と書かれているのを見かけます。
今回作るツールはcsvからのただの転記なのですが、本来なら3つのファイルに分かれていてもよい要素の異なる3つのデータが、ひとつのcsvファイルとして出力されます。(そのため列数が100を超えます。)
主キーもそれぞれ異なり、
例えば「りんご」のデータだとするとAからはid でデータを取れますが、Bの販売店情報はIDを含んでいません。Cの農家情報は、Aの商品情報に含まれる「管理番号」で紐付けできます。
そしてCの「出荷先ID」でBの情報と紐付けすることができます。
______
このような場合、手作業などで、作業列作って・・・とデータ整えたりしますが、Vbaでもそんなプロセスをしないといけないのでしょうか...?
先ほどの質問では、csvの列が固定できない場合の関数等の質問をさせていただいたのですが、全体の設計を先に考えるべきだと思い直し質問させていただいた次第です。
どうぞよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
こんばんは
>「マクロ記録で手作業で行ってみて、修正や追記していくのが良い」
それでも作成することは可能ですが、必ずしも効率の良いものにはならない可能性があります。
マクロでできることは、手操作でも可能ではありますが、効率が良いとは限りませんので。
ご質問の内容が抽象的で曖昧なので、よくわかりませんけれど・・・
3種類の表(?)が一つのCSVになっていて、それぞれから検索出来れば解決することのように思われます。
何回「読み替え」が必要かによって、面倒さは変わるかも知れませんが、「セル範囲から検索する関数」みたいなものを作っておけば、後はそれを利用して何度でも検索を繰り返せば済みそうにも思われます。
(簡単な検索なら、わざざざ関数化するまでもないかも知れませんが・・)
>本来なら3つのファイルに分かれていてもよい要素の異なる3つのデータが、
>ひとつのcsvファイルとして出力されます。
どのようになっているのか不明ですが、それぞれを分割できる目印があって、それを解析できるようになっていれば処理は可能と思います。
ただし、あまり良いデータの作成方法とは思えませんけれど・・・
>手作業などで、作業列作って・・・とデータ整えたりしますが、
>Vbaでもそんなプロセスをしないといけないのでしょうか.
作業列を利用する方法も考えられますが、ご質問の内容から想像する限り、作業列は必要なさそうに思われます。
(内容が不明なので、よくわかりませんけれど・・)
マクロの処理の場合は、変数をメモリとして使えるので、作業列や作業セルの代わりに利用することも可能です。
いずれにしろ、目的とする処理を整理して、無駄のないような処理に再構築することが、結果的にわかりやすく効率的なものになりやすいのではないかと思います。
(不合理な条件があれば、それを見直すようなことも考慮したほうが良いのかも知れません)
No.2
- 回答日時:
こんばんは。
もし、csvの出力データが変更できるのでしたら、それを先に行えば、
VBAのツールを作成する必要もありませんね。
紐付けができているのでしたら、csvを1行読み込んでIDを取得。
取り出したIDから、続きのデータを検索。 先ほどのデータと結合。
さらに次のIDを取得し。。。と、VBAで面倒な処理が必要かと。
若しくは、3行毎に1つの商品でしたら、3行毎にまとめるとかでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA CSV取り込みについて 3 2021/12/30 22:40
- Access(アクセス) accessでexcelデータを一部変換してインポートするVBAコードを教えてください。 2 2021/12/14 08:31
- 弁護士・行政書士・司法書士・社会保険労務士 法定相続分による単独申請(相続登記) 2 2021/11/24 08:36
- Visual Basic(VBA) VBA: HTTPでのスクレイピング 2 2021/12/28 21:14
- Excel(エクセル) マクロを修正できないものか、統合シートについて 3 2021/12/07 09:26
- 仕事術・業務効率化 同業他社の求人調査・管理するだけに意味ありますか? 1 2021/12/12 18:02
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- その他(Microsoft Office) 横1行のデータを3つずつ3列に変換したい(マクロ初心者) 4 2021/12/17 15:03
- Excel(エクセル) Excelの表作成でコピペ作業を軽減したい 11 2022/02/04 15:36
- その他(教育・科学・学問) フローチャートについて質問です。 質問Aと質問Bに対するYesかNoの答えで4パターンの場合分けが行 5 2021/12/26 02:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヘルプファイル(.chm)の作成...
-
Googleの衛星写真はいつ掲載さ...
-
SQL Server にファイルを登録、...
-
Access 外部データ インポー...
-
LVMでHDDが壊れた時の対応
-
VBA 罫線について B列3行目から...
-
EBCDECへの変換
-
キャッシュとバッファの違いは?
-
AndroidからのAccessデータベー...
-
DB2にはRIGHT関数がないの?
-
ハイフン無しの電話番号データ...
-
音楽アルバムのデータベース作成法
-
accessの勉強ができるサイトは?
-
Access2000でデータベースの最適化
-
ホームページに用語集を作りたい
-
ACCESSで条件付き書式の設定方法
-
データのインポートに失敗します。
-
accessを自宅のパソコンにイン...
-
カンマ区切りで格納するカラム...
-
AccessとSQL Serverの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュとバッファの違いは?
-
スタライズとは、どういう意味...
-
SQL Server にファイルを登録、...
-
LVMでHDDが壊れた時の対応
-
Access 外部データ インポー...
-
値がこの列の整合性制約に違反...
-
エクセルのマクロ
-
C#でint型をIntPtr型に変換した...
-
エクセルから、パワーポイント...
-
Perlで、「が」を、「...
-
エクセルでのテプララベル作成
-
Accessでタブ区切りのテキスト...
-
EXCELの最大データ数
-
UNIX時間をEXCEL上で日付・時間...
-
GerberデータからBmpデータへの...
-
自作Androidアプリのデータ引き...
-
VB.netのADOってなんですか?
-
アクセスのデータが書き換えら...
-
ADOでデータを送ってる最中はア...
-
ビット数とデータ幅について
おすすめ情報