• ベストアンサー

エクセルの移し変え作業(A表のデータをコピー、B表にペーストする)で

imogasiの回答

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

(追報) 1.Test01()は終わったようですね。ただ心配なのは最下行が、41Aまでと書いておられるが、8760行目(=24*365)に365zが入っているはずで そうなっていませんか。 2.Test02()ですが、新規作成のBook1のSheet1のA列のデータに対し、プログラムが加工して、Sheet2のA列からZ列かつ1から365行までに書き出します。これで良いか良く考えてください。 3.OKWebの画面の幅に合わせかたが判らなくて、苦しんでいます。下記の/より/までは行を変えずに打ち込み、かつ/では必ず改行してください。 スペースを入れるところは@マークを入れます。 4.本例ではSheet1のA列の1列をSheet2のAからZ列に並べ替えていますが、Sheet1には何列も有るのではないかと思う。 最大10列に限り(10×24<256<11×24) 増やすようプログラムを改められます。 5.「私の解釈では」と書いておられるところは違います。ブックを新規で作成すると、取りあえずSheet1,Sheet2、・・・が出来ますが それをそのままテストで使うことを前提にして、WorkSheets(”Sheet1”)とかWorkSheets(”Sheet2”)とかとしています。 5.本番のBook(ファイル名)のデータが入っているSheetにおいて、下記の操作をしてください。 Test01()はテストデータ作成用ですので、本番では実行不要。 <本番のVBA Test2()実行操作> ●本番の元データの入っているシートの画面を開く。 ●その画面のメニューバーのツール-マクロ-VisualBasicEditorを順にクリックして、その後メニュバーの挿入-標準モジュールをクリックし、左のプロジェクトエクスプローラー部に「Module1」があらわれるから、それをダブルクリックして右側部分の白紙画面に前記のテストの時のTest02()以下をそのままコピーし貼りつける。 (テストの時のBook1のSheet1のModule1のTest02()からEndSubをコピーし、Book1を閉じても、本番のデータの入っているSheetのModule1に貼りつけることが出来ます。) ●Test02()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニューバーの「実行」をクリックすると実行される。 @は1スペース、/は改行を示す(我流です。またVBEがスペースを自動的に入れる個所がありますが、そのままにまかせて良い。) Sub@test02()/ Worksheets("sheet1").Activate/ For@i@=@1@To@24 * 365/ j@=@i@Mod@24/ If@j@=@0@Then/ j@=@24/ k@=@Int(i/24)/ Else/ j@=@j/ k@=@Int(i/24)@+@1/ End@If/ Worksheets("sheet2").Cells(k,j)@=@Worksheets("sheet1").Cells(i, 1)/ Next@i/ End@Sub/

abouka
質問者

お礼

imogasi様 先日はマクロの件で、ご指導いただきましてありがとうございます。 それ以来、テストしましたが結果はまだできません。 私がマクロについて基礎的な解説書を読み、一般的な理解ができた後に imogasi様のご回答が分かるはずです。そうします。 または、私の知人でマクロの理解者がおれば、imogasi様の回答書を元に 解説してもらいます。 imogasi様に折角回答をいただきましたが、ご負担をかけたことをお侘びします。 今後も、私に、教えて!問題が起これば投稿する機会があろうと思いますので、 その際は、よろしくお願いします。 ありがとうございました。 (これにて、質問を締め切ります)

abouka
質問者

補足

imogasi様 今晩は!追記ありがとうございます。 1)sheet1の8760行目は365Zが入って、sheet2への移し変えは   期待したとおり、365行になっています。 2)実際のデータは、A列からF列まであります。   (テストはA列が、sheet2へ移ればよいとの考えですが、    6列とも入れてテストしています。) 3)"私の解釈"は、今回はっきり理解できました。  (行の後ろに引っ付けるというのは、実行した時、そこが赤い色がついたので   理解できました。) 本番の実行で: ご指示のように、進めたつもりですが、、、、 左の枠の上部にVBAProject(Book1)があり、Module1 と Module2が見れます。 その下に、VBAProject(本番データのタイトル)とModule1があり、Module1が 反転しています。 右に入っているプログラムの中で、Worksheets("sheet1").Activateの1行に 黄色に色がついてます。(なぜがは分かりませんが) "sheet1"を本番データのシートの名前”data”をいれても同じ結果でした。 実行すると、 『実行時エラー'9' インデックスが 有効範囲にありません』とメッセージが出ます。 最初からやり直して、何回か実行してみましたが、その都度 同じメッセージです。 私の操作ミスがどこにあるのか判断していただけませんか?

関連するQ&A

  • エクセル98のコピーペーストについて

    エクセル98を使用しております。 そこで、下記のようなコピーペーストが可能かどうか教えて頂けないでしょうか? また、コピーペースト以外に方法があれば、教えて頂きたいのです。宜しくお願いします。 例えば、 A1セルに10、B1セルに15、C1セルに20とあったとして、 A50セルに「=A1]答10、B50セルに「=15」答15、C50セルに「=C1]答20 と置いきたいのです。 つまり、縦方向のデーターをコピーして、横方向に貼りつけていきたいのですがどうでしょうか? 手作業で1つ1つ入れて行くしか方法が無いのでしょうか?

  • excel のコピー&ペーストについて

    会社で表(Excel2000)を作らなければならなくなりました。 3列を一つの区切りとして10ケ並んでいる表で、1行目の1・4・7・・・・・を別のシートに抽出しました。これをコピーして1行目の2・5・8・・・・次に3・6・9・・・とコピー&ペーストしてゆきたいのですが、単純にコピペすると全然違うセルをペーストしてしまいます。一つ一つ指定してゆくと2日から3日この表を作るのにかかってしまうと思います。説明下手で申し訳ありませんが、これに使える関数とか方法があれば教えて下さい。

  • エクセル 同じ作業(行の削除,コピーペースト)を簡略化したい。

    いつもありがとうございます。 Excel2000を使ってデータの加工をしています。 3000行くらいあるワークシートがあります。 1.その中から削除したい行があるので,いちいち行番号のところで右クリックをして削除をしています。 これをもっと簡略化する方法はないでしょうか。 2.コピーペーストを繰り返す作業もしています。左手の小指がツリそうでプルプルしているのです。こちらも更に簡略化する方法はないでしょうか。 説明が拙くて申し訳ありません。

  • エクセルで工程表・作業表を作っています 塗りつぶしの自動化についてお教えください

    エクセルで工程表・作業表をつくることになりました。 A1セルに項目名「年月日」A2セルに項目名「曜日」 以下A3 A4・・・と作業氏名が入っています B1から右方向に2005/01/01の形式で連続して 年月日が入っています B2はB1を参照してWeekday関数を入れて 曜日を表示しています。 ここからなのですがA3から下方向に作業者名が入力されていますが 曜日に関係なく ばらばらに「休」と文字を入れて この作業者がその日は休みであることをあらわしています。 ある人のセルに数字を2種類入力して 作業日数分塗りつぶして その作業の種類を色で塗り分けたいのですが 2005/11/24 ある作業者の欄に数字を3(三日間という意味) を入れると 24日25日26日が自動的に塗りつぶすようなことは 可能でしょうか? そして たとえば25日の欄に「休」を入っている場合には 24日は塗りつぶして 25日は「休」のままで塗りつぶさなくて 26日と27日をまた塗りつぶすという判別の方法があればと 思っています。 関数で可能なのか もしくはセルをクリックなどして ユーザーフォームを立ち上げて入力を促すマクロなどでないと 難しいのか いかがでしょう? 文章がわかりにくかったら申し訳ありませんが 補足の解説をさせていただきますので よろしくお願いいたします

  • エクセルでコピー・ペーストができない

    エクセル2003を使って集計表を作成しているのですが シート(4月)のセルをコピーしてシート(5月)に貼り付けようと しても右クリックメニューの貼り付けがグレーになっていて ペーストできません 原因が何なのかわかりません シートやセルに保護は掛かっていませんし 複数シートを選択してもいません 右クリックメニューでコピーまではできるのですが困っています

  • エクセルで、sheet1とsheet2の数値を提出表スタイルに並べかえて移動したい。

    皆様にお世話になります。 エクセルを使って、sheet1の数値とsheet2の数値データを提出表スタイルに並べかえて移動したいのです。 sheet1の表は、A2~FZ2に○年1月1日~6月30日の日付、  列方向の A2~A25は1時~24時までの表示があり、B2~FZ25間のセル (4344個)にデータが並んでいます。 sheet2の表は、A2~FZ2に○年7月1日~12月31日の日付、 列方向の A2~A25は1時から24時まで表示、B2~GC25間に (4416個)のデータが並んでいます。 提出表スタイルの表は、A8に1月1日の日付があり、下方向に1月2日(A9)、 3日(A10)と最終行の12月31日はA372です。 右方向は、A7~Y7に1時~24時までの時間表示、数値をインプットする最初のセルはB8で、B8~Y372までデータが入れば完成です。 sheet1、sheet2の数値を提出表のスタイルに(簡単に時間をかけずに)移し変える方法があれば教えていただけるようお願いします。 (以前同じような質問をいたしましたaboukaです。その時教えて貰いましたすばらしい回答でその作業は急ピッチで進められました(現在も続行中)。 今回新しい問題が出て、以前の回答方法を応用できないか?を考えたり、エクセル応用編を見ましたがギブアップします。よろしくお願いします)

  • エクセル 数式をコピーペーストしたい

    具体的に話をします セルA1に単価 セルB1に数量 セルC1に結果 ↑↑↑ この式をセルA2~100行目までペーストしたいです 普通にセルA1の数式をコピーしてペーストすると出来ませんでした まさか1行1行数式を入力するわけにはいかないので簡単なやり方があれば教えて下さい

  • エクセルのコピー&ペーストについて

    エクセルで作ったある表をコピー&ペーストで、セルの寸法(幅とか高さ)も、コピー元通りペーストする方法を教えてください。 いつもペーストの結果がセルのデフォルトの寸法でしか出来ないので困っています。 どうぞ宜しくお願い致します。

  • エクセルのコピー&ペーストについて

    エクセル2010を使用しています。大量のエクセルデータを、指定された表に張り付けたいのですが、指定された表の行が2列ずつセルを結合されている為、うまくいきません。何か良い方法をご存じの方、教えて下さい。

  • エクセルの表、ワードの表をパワーポイントの表へ持ってくる方法

    パワーポイントには、既に10行10列の表が作ってあるとします。 エクセルのエリア(A1:A4)を選んで普通にコピーして、パワーポイントに移動して、表の(1,1)をクリックして、通常のペーストをすると、ある時は、期待通り4つのセルにセルごとに正しくコピーされる。別の時には、パワーポイントの一つのセルに、データが4行になって入ってしまう(これは、形式を選んでコピー「値」に対応すると思います)。何が結果の違いを生んでいるのか、分かっていません。 ワードの表のデータをコピーする場合も、上記と同じです。 質問は、「パワーポイントへのデータのペーストに関し、どう言うルールがあり、うまくデータを表の形でペーストするにはどのようにすれば良いのか」ということです。 パワーポイントの表、100行4列にデータを、エクセル、ワードから持ってこなければいけません。 よろしくお願いいたします。