• 締切済み

エクセルのセル~結合セルへのコピーの仕方を教えて

フォーマットのセルがありますが 結合セルで出来ています マクロの設定も含まれているようです Aの一列の中で上下2つのセルで一つになっています それが五行あります 左にはエクセルのもともとの枠の番号が1から10まであって Aの縦のセルの数は五行です そのAの縦に名簿のセルを例えば5名分貼り付けますと もともとの結合前のセルに戻って5行貼り付けられてしまいます 左にあるエクセルのもともとの枠の番号ですと1から5までに 貼り付けられるのです わたしはもともとの結合セルの5つのセルにはめ込みたいのですが いっぺんには出来ません 一つづつですとできます なぜなのでしょう 結合セルにまとめてコピーできる方法を教えてください マクロの設定はくずれてもあらかじめ消してもかまいません 私がしたいのは コピーして改めて作ったものの印刷だけです よろしくお願いします

みんなの回答

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.6

#4のka_na_deです。 マクロも作ってみました。 興味があれば、データバックアップ後に試してみてください。 <機能> 右横に新しいシートをコピーして、 一行おきに空白行を挿入します。 '<マクロ> Sub test()  Dim r As Long  ActiveSheet.Copy after:=ActiveSheet  Application.ScreenUpdating = False  For r = Range("A65536").End(xlUp).Row To 2 Step -1   Cells(r, "A").EntireRow.Insert  Next r  Application.ScreenUpdating = True End Sub <使い方> 1)名簿データの入ったシートを表示させ、   下のシート名のタブの上で右クリック 2)「コードの表示」をクリック 3)左側のプロジェクトエクスプローラーで、   VBAProjectのの上で右クリック、「挿入」→「標準モジュール」  (プロジェクトエクスプローラーが表示されていなければ、   上部の「表示」メニューから選択表示できます。) 4)右側に上記のマクロを貼り付けます。   実行は、上部の再生マークボタンを押してください。

回答No.5

No.1です。 確かに空白行を作っておかないと順序が変わりますね。 No.4さんの方法だとキレイにできました。 お役に立てなくてごめんなさい。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

マクロを使えば、一行おきに空白行を入れることは簡単です。 しかし、今回はあえて関数で説明します。 改めて確認しますが、名前の列だけではなく 地域とか業種とか複数の列が存在して、 それらも、結合セルの中に貼り付けたいということですね? だとしたら、 たとえば、コピーする名簿データが A列~F列にあったとします。 例えば、G1セルに(AA列でもいいのですが) =IF(MOD(ROW(),2),INDIRECT("A"&INT(ROW()/2+1)),"") と入力し、以下コピー&ペースト 次にその横の例えばH1セルに(AB列でもいいのですが) =IF(MOD(ROW(),2),INDIRECT("B"&INT(ROW()/2+1)),"") と入力し、以下コピー&ペースト 次にその横の例えばI1セルに(AC列でもいいのですが) =IF(MOD(ROW(),2),INDIRECT("C"&INT(ROW()/2+1)),"") と入力し、以下コピー&ペースト これを、必要な列だけ繰り返します。 要は"A"の部分をB、C、D・・・・と置き換えてます。 これで、元データの一行おきのデータができました。 これを必要な部分をコピーして、 貼り付けたいデータの同じ大きさの範囲を選択して、   「編集」→「形式を選択して貼り付け」で「値と数値の書式」にして「OK」 にしてください。 この回答で良く分からないとか、 補足内容と違う場合はコメント下さい。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.3

私もやってみました。 貼り付けはできましたが、名簿の順番が狂いませんか? 私だけだったら、この回答は無視してください。 回避案です。 1)名簿データが別のシートのA列に1行目からあるとして説明します。   B列を挿入作成し、B2セルに   =IF(MOD(ROW(),2),INDIRECT("A"&INT(ROW()/2+1)),"")   と入力し、以降コピー&ペースト      これで、B列に1行おきの名簿データができたと思います。    2)この、B列を選択し、コピー 3)結合セルのあるシートに戻り、A列を選択し、   「編集」→「形式を選択して貼り付け」で「値と数値の書式」にして「OK」

nanafusi
質問者

補足

ありがとうございます 名案だと思います つまりセルの結合前の結合分のセルが必要なのですね 今回の場合2行分をあらかじめ用意しておくことが必要なのですね 今回私のやりたい作業ですが やはり名簿からの移し替えなので 一行分まるまるの中から名前とか地域とか業種とかも必要なので 一セル分の =IF(MOD(ROW(),2),INDIRECT("A"&INT(ROW()/2+1)),"") ではなく1行分となるとどう言う 関数式になのでしょうか よろしくお願いします

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

他にもやり方があると思いますが、次の手順で可能でした。 (Excel2003) 1) コピー元のセル範囲を選択してコピーします。 2) 貼り付け先のセル範囲を選択して、「編集」→「形式を選択して貼り付け」で、「値と数値の書式」をオンにして「OK」を押します。 お試しください。

nanafusi
質問者

補足

すばやい回答ありがとうございます 一番の細くと同じ文章でごめんなさい 回答3番の方の言うとおり順番が狂います なぜなのでしょうか回避の仕方をご存知でしたら よろしくお願いします

回答No.1

こんにちは。 結合されていないセル5行分の名前を結合されたセル5行(2行づつの結合で枠番号は10まで)に貼り付けるということでよろしいでしょか。 元の5名分をコピーします。 貼り付け先のセルを全て選択します。(普通の貼り付けのように一番上だけ選択したのではできません) 右クリックで「形式を選択して貼り付け」「値と数値の書式」を選んで「OK」 これで、結合されたセルに貼り付けられるはずです。 質問の意味を取り違えていましたらごめんなさい。

nanafusi
質問者

補足

すばやい回答ありがとうございます 回答3番の方の言うとおり順番が狂います なぜなのでしょうか回避の仕方をご存知でしたら よろしくお願いします