重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下のように請求書ひな形のレイアウトをVBAで複製して商品情報を格納するプログラムを考えているのですが、私には難易度があり困っています。考え方や方法を教えていただきたいです。
「内容」
・「製品情報」シートから「Sheet1」シートへ情報を格納
・VBAでひな形を複製し「製品情報」シートの情報40件分をそれぞれに入れる

よろしくお願いいたします。

「VBA レイアウト複製し情報を格納」の質問画像

A 回答 (2件)

こんにちは



ほとんど内容がわかりませんが・・・

>「製品情報」シートから「Sheet1」シートへ情報を格納
Sheet1へどう格納するのか、単なるコピーなのかわかりませんが、そのままコピーするなら
・シートを複製して、シート名を「Sheet1」に変更する
 (既存でSheet1が存在しないことが条件)
・あるいは、製品情報シートのセル全体をコピーして、Sheet1へペースト
 (セルに関数等があってうまくいかない場合は、「値をペースト」)
上記の方法であれば、どちらも「マクロの記録」を取ればそのまま再利用ができると思います。

>VBAでひな形を複製し「製品情報」シートの情報40件分をそれぞれに入れる
1つのシートに40件入れるのか、40シートを作成するのか不明ですが、基本的には1回分の処理を作成して、それを40回分ループさせればよさそう。
一回分の処理としては、
・雛形となっているセル範囲を(新しい?)シートにコピペ
・出力対象の製品情報を上記に入力
で、済みそうです。

元データのシートが決まっているようなので、雛形の特定セルに製品情報のキー(例えば、製品IDなど)を入力すれば、全部が埋まるように、あらかじめ関数等を設定しておけば、特定セルにIDを入力するだけですむようになるので、データ転記の処理はとても簡単になります。

ループする際に、同じシートに行(または列)を変えてペーストしてゆくような場合は、コピー先を一定行数(列数)ずつ増加するような仕組みにしておけば良いです。
毎回、新しいシートに作成するのなら、ループ内に「シートを追加」するところから記述すればよいでしょう。

こちらもある程度までは、「マクロの記録」を利用できるとは思いますが、ループ可能なように修正する必要がありますし、ループ全体の制御は自作する必要があるとおもわれます。
    • good
    • 0

<考え方>


難易度が高いという時点で手を出すべきものではない
請求関係は 会社の根幹部分
誰かに書いてもらったコードを丸写しし 理解しないまま運用
後に大きなトラブルに直面し八方ふさがりになる可能性大

<方法>
外部ソフト業者へ委託
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!