• ベストアンサー

excelのデータ転写(マクロ)

excelで同一ブック内にあるSheet(1)の数値をSheet(2)へ値のみコピーしたいのですが。 (1)Sheet(1)で月報を作成 (2)Sheet(2)の年表へ値のみコピー(転写)。 但し、条件として○○月分とsheet(1)で表示しているものを参照し、Sheet(2)年表の○○月分のセル(○○:○○)にその値を転写したいと思っています。 当方、マクロ等よく分かりませんのでよろしくご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

テストデータ(Sheet1) 月次表 6月分 項目名    計数 売上高    1230 受手数料 35 人員数     37 人件費     15 (以下略) テストデータ(Sheet2) Sheet2のデータ部分は空白にして、実行して下さい。 年次表 4月分 5月分 6月分 7月分 (以下略) 項目名 計数 計数 計数 計数 売上高 1230 1520 受手数料 35 45 人員数 37 38 人件費 15 16 (以下略) 上記は実行結果です。5月、6月でやって見ました。 シートからALTキーを押しながら、ゆっくりF11、I、Mを 押しModele1を挿入。 (コーディング) Sub test01() For i = 2 To 14 If Worksheets("sheet2").Cells(2, i) = Worksheets("sheet1").Cells(1, 3) Then '前行にくっ付ける For j = 3 To 20 Worksheets("sheet2").Cells(j + 1, i) = Worksheets("sheet1").Cells(j, 2) '前行にくっ付ける Next j Exit For End If Next i End Sub iの14は12か月プラス上、下期小計の2列 jの20は項目の最下行の行番号を仮に20とした。

kkki
質問者

お礼

imogasi様へ  早速にご回答頂き恐縮致します。  ご教示いただきましたものを参考にやってみます。  ありがとうございました。  

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

コーディングレベルまでの解答を求めるなら、下記の点補足されてはいかがでしょうか。 (1)Sheet1表で○○月分はX列に(縦に)並んでいるのでしょうか。今後もX列はY列とかに動かない(と仮定してよい)のでしょうか。他の月分データもSheet1にあるのでしょうか。見だし「○○月分」を頼りに探すのでしょうか。 (2)またSheet1の○○月分の最下行は、月により上下に動くのでしょうか。項目数は固定数か。 (3)年次表のSheet2で、○○月分はZ列に(縦に)並んでいるのでしょうか。今後もZ列はU列とかに動かない(と仮定してよい)のでしょうか(次月には後ろへずれるなど)。見だし「○○月分」を頼りに探すのでしょうか。見だし(○○月分)は入って入っているのでしょうか。 (4)多分Sheet2の方は、入る列が月ごと順次ずれて行くのでしょうね。

kkki
質問者

補足

ご面倒をお掛け致します。 また、補足が大変遅くなり申し訳ありません。 さて早速補足させて頂きます。 (1)について   Sheet(1)の月表は固定したセルの中での計算処理であり、行・列ともに動きま   せん。 (2)項目数も固定です。 (3)年表のSheet(2)においては、4月~3月まで横(行)に並んでいます。また、そ  の表が動くことは有りません。   (4月~9月で一度上期集計、10月~3月までで下期集計そして最後に年合計   の列がはいります。) 次月は横にずれることになります。   sheet(1)のセル番地(C10)を参照して、年表中の当該月へデータが転写でき   ればと考えています。 (4)その通りで、月毎に順次ずれていきます。(D列..4月、E列..5月といった具   合です)   これでわかりますでしょうか?   よろしくお願い致します。

  • takao
  • ベストアンサー率20% (34/170)
回答No.2

>回答頂いたような参照は関数(LOOKUP)しかした事がなく、どういう風にマクロの中でやっていったらいいのかわかりません。(記述の方法) いえいえ、そう意味ではないのです。 シート間でお互い相手のセルを参照するというのは普段から 良くお使いだと思います。 数値を貰う側のセルで「+」を書いて、 元データ側のセルをクリックするだけですね。 もちろんコピーしても良いですし、その作業をマクロで記録 しておいて、適当なボタンにでも対応させておけばマクロを 使用した自動コピーも簡単でしょうが、そもそもご質問に 書かれている使い方にマクロがどうして必要なのですか? もっとも運用上の何らかのご事情はおありかと思います。 マクロでなけりゃダメとか、マクロそのものを作ることが 目的ならその旨を補足してくだされば回答しやすいです。

kkki
質問者

補足

説明が悪く、ご面倒をお掛け致します。 また、補足が大変遅くなり申し訳ありません。 Sheet(1)の月表は固定したセルの中での計算処理であり、行・列ともに決まった表の中で月次計算をさせています。(セル番地が動くことはありません) Sheet(1)はあくまでも月次計算用のSheetであり、当月分のデータは翌月になったら消します。(当該月の処理をする為データ消去します) よって、当月分のデータSheet(1)をSheet(2)の年表へデータ転写している次第です。 現在は数年前に作ったロータスマクロにて数値の転写をしていますが、excel2000のバージョンでは動作しないことが分かりましたので、それを改めて作成したいと 思っているところです。(現在、excel95にて運用しています) ・年表のSheet(2)においては、4月~3月まで横(行)に並んでいます。また、そ  の表が動くことは有りません。   (4月~9月で一度上期集計、10月~3月までで下期集計そして最後に年合計   の列がはいります。) ・翌月は横にずれることになります。 ・sheet(1)のセル番地(○○月)を参照して、年表中の当該月へデータを転写  したいと考えています。   これでわかりますでしょうか?   よろしくお願い致します。

  • takao
  • ベストアンサー率20% (34/170)
回答No.1

sheet(2)がSheet(1)の該当セルを参照するだけでは なにか問題がおありでしょうか?

kkki
質問者

補足

早速の回答ありがとうございます。 申し訳ありません。当方マクロの記録はしたことがありますが、回答頂いたような参照は関数(LOOKUP)しかした事がなく、どういう風にマクロの中でやっていったらいいのかわかりません。(記述の方法) よろしかったら記述の方法までご教示頂ければ幸いです。 よろしくお願い致します。

関連するQ&A