質問: VBAについて詳しい方、教えてほしいです。初心者です。 ブックA,B,C,D(全部同じシートの様式)で、 ブックAの最初のシートのセル3B:6Eの範囲をコピーして ブックB,C,D各ブックの同じ位置(範囲)に貼り付ける という動作をさせるマクロを作成したいのですが、このときに、 ・ブックAの指定はダイアログボックスで選択 ・ブックAの対象範囲をコピー ・ブックB,C,Dの選択はダイアログボックスで一括で選択して同じ範囲に貼付け ということは可能でしょうか? 調べてみて、同じフォルダ内のすべての*.XLS?ファイルへ 同じ動作をさせる、というような記述は目にしたのですが、 ・一括で開くという記載はある(その後コピー貼り付け動作へとつなげたい) ・フォルダ内に上の例のA,B,C,D以外のブックが保管されていることもあるので すべての*.XLS?に対して必ずしも実行させたくないことがある こういった点はVBAで解消できる内容でしょうか・・? よろしくお願いいたします。
回答: コピペ事態は単純なのにボックスや不要ファイルのせいで難しくなってますね。 ブックaの指定はそのファイルを開きアクティブにすることで代用。 コピー先ファイルはファイル名に規則性があるならそれで、ないなら一旦コピー先格納用フォルダに必要ファイルのみコピーする等の人間側の対応で対象するのが現実的に思えます。 仕事で扱うのであれば、 コピー元の値確認のためにもブックaは一旦は開くべき。 巻き込みたくないファイルが入ってるフォルダでファイル操作マクロなどを動かすべきではない。という事情もあり、必要な手間かと思います。 【可能かどうか】 ・ブックAの指定はダイアログボックスで選択 → 可能。ただし実行のまえに、ボックスの選択肢にファイル一覧を追加する別のマクロを作成、実行する必要あり。 ・ブックAの対象範囲をコピー →可能。 ・ブックB,C,Dの選択はダイアログボックスで一括で選択して同じ範囲に貼付け →不可能。ダイアログボックスは複数選択できない。 代案、ファイル名をシートに羅列するマクロを実行後、コピー先対象ファイルにのみ○等の印をユーザーにつけてもらいそれを対象にする。