|
皆様、初めまして。ハンドルネームで失礼致します。
お時間の空いているときでも結構ですので
どうぞ、よろしくお願いします。
現在、エクセルで題名のような事をやっています。
関数での単語順列作成はできたのですが、
ファイルサイズが異常に大きくなってしまいとても困っています。
この様なものをVBAで作ろうとしています。
対応したいエクセルのバージョンは、Excel2000~2005です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例)エクセルの表
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
──┬─────┬─────┬──────────────
│ 列A │ 列B │ 列C
──┼─────┼─────┼──────────────
行1│ 単語1 │ 単語1 │ 保存用のキー
──┼─────┼─────┼──────────────
行2│ │ 単語2 │
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
行n│ │ 単語n)│
──┼─────┼─────┼──────────────
という単語群があります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.列Aの単語1が必ず入った、列Bの単語との順列生成
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1)
ポイントは列Aの単語1は必ず含むということです。
列Aの単語は、1個だけ指定します。
(2)
列Bの単語nは
2構成の場合100個まで対応したいのです。
3構成の場合50個まで対応したいのです。
4構成の場合25個まで対応したいのです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.列Aの単語1を含んだ2構成から4構成まで生成
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1)
単語の間には「半角ブランク」を入れる。
例1)
単語が5個ある場合の3構成はこうなります。
この場合は、A列の単語1が必ず含む順列が36個できます。
単語1 単語2 単語3
単語1 単語2 単語4
単語1 単語2 単語5
例2)
これは4構成で単語が6個ある場合。
この場合は、A列の単語1が必ず含む順列が240個できます。
単語1 単語2 単語3 単語4
単語1 単語2 単語3 単語5
単語1 単語2 単語3 単語6
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.生成した順列をテンプレートシートに5000行毎に書きだし。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1)テンプレートシートのB列に格納
──┬─────┬───────────────────
│ 列A │ 列B
──┼─────┼───────────────────
行1│ AAA │ 単語1 単語2 単語3 単語4
──┼─────┼───────────────────
行2│ AAA │ 単語1 単語2 単語3 単語5
──┼─────┼───────────────────
行3│ AAA │ 単語1 単語2 単語3 単語6
──┼─────┼───────────────────
行n│ AAA │ 単語n(5000行まで)
──┼─────┼───────────────────
(2)5000行に達したらテンプレートシートをCSVとして保存
(3)テンプレートシートに生成した部分をクリア
(4)再度1行目から書きだし
(5)終了するまでループ
4.ファイル名は、「列Cの保存キー_yyyymmdd_hhmmss.csv」
3,4については私もできるかな?と思うのですが、
1,2はどうすればいいのか混乱してしまいます。
もしかすると私レベルの知識だと一筋縄ではいかないものなのかもしれません。
どうにかなりませんでしょうか?
どうぞよろしくお願いいたします。
追記
メールアドレスは公開しております。
もし、サンプルを送っていただける場合は、お知らせください。
|
|