• ベストアンサー

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

imogasiの回答

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

なんか悲惨な様子が伝わってきましたので、解答する気になりました。ただVBA(俗に言うマクロ)なので、判らないといわれるかもしれないですが、まあ考えてそっくり真似することを検討してください。 他の方の関数作成、式のコピー方式も結構複雑なようで 下記の法が簡単かも。 下記Test2()は10秒以内に終わります。Test1()も10秒以内です。 もし下記を使われるなら、まずTest1()を実行して、sheet1のテストデータを良く見て、私の理解が、実情と違っていないか考えて、良ければTest2()を実行して下さい。 データは特徴をモデル化してあるつもりですので、。 そしてsheet2を良く見て貴殿が考えている通りのパターンに並べ替えられたか良く考えてください。 それから本番のデータにTest2()を実行してください。 '--------<テストデータの作成> Sub test01() b = "abcdefghijklmnopqrstuvwxyz" 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("sheet1").Cells(i, 1) = k & Mid(b, j, 1) Next i End Sub (Next iの上の行「1)」はWorksheets("sheet1")の行の後に引っ付けてください。横幅制約の為に無理に改行されていますのでご注意。この()の部分はプログラムでないのでプログラムの打ち込みの時は省くこと。) '-----<行と列の日別に入れ替え> 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 (Next iの上の行はWorksheets("sheet2")の行の後に 引っ付けてください。横幅制約の為に無理に改行されて いますのでご注意。この()の部分はプログラムでないのでプログラムの打ち込みの時は省くこと。) '---<VBAの実行のし方> ●エクセルでのメニュバーのファイル-新規作成をクリックしsheet1の画面を開く。 ●メニュバーのツール-マクロ-VisualBasicEditorを順にクリックして、その後メニュバーの挿入-標準モジュールをクリックし、左のプロジェクトエクスプローラー部に「Module1」があらわれるからそれをダブルクリックして右側部分の白紙画面に上記のTest1()以下とTest2()以下をそのまま入力する。 ●し終わったら、Test1()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニュバーの「実行」をクリックすると実行される。 ●出来たsheet1を良く見てください。 ●Test2()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニュバーの「実行」をクリックすると実行される。 ●出来たsheet2を良く見てください。 ●Test2()でプログラムのやっている理屈や内容が知りたければ、補足に表明していただければ説明文を作ります。 ●私の方法に関わらず、いかなる方法でやるにせよ、実本番データは別にバックアップを取って置いて実行すること。

abouka
質問者

補足

imogasi様 ご返事が遅くなり失礼しました。 マクロ以外の方法をテストしてきましたが、まだ最終まで到達できません。 imogasi様より教えていただきました方法でマクロの世界に入ります。 ご指示どおりに●1、●2、●3、●4、まで進めてできたsheetを 見ております。 sheet1の、A列にA1から下方向に、1a,1b,1c,と1が24行並び、 25行目から2a,2b,2c,が 最終の 41a まで見れます。 しかし、私のデータと、それをペーストするsheetはまだ入れてありません。 以下、私の不明な点の質問となります。 1)sheet3、にデータを入れ、sheet4にペースト先のものを入れるのでしょうか? 2)以下の文章の内容指示ですが、これをどこに貼り付けるのしょうか? を 指  示してください。   ※ Next iの上の行はWorksheets("sheet1")の行の後引っ付けてください。     → 私の解釈;       マクロ-テスト-1とシートに名をつけておりますが、       下側にあるsheet表示欄のsheet1のタイトルの後ろに       スペースを空けずに、Cells(i, 1) = k & Mid(b, j, 1) と       つけるのでしょうか?        ご指示の後方に("sheet2")につけることも書かれております。       そうなると、データなどはsheet3以降に入れるのでしょうか?  夜分遅くなり、ご連絡が遅く失礼します。  私ごとですが、まだ、2時間位この作業を進める道を探しますので  起きております。

関連する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列にデータを、エクセル、ワードから持ってこなければいけません。 よろしくお願いいたします。