• ベストアンサー
  • すぐに回答を!

エクセルでA行をコピーし、3列づつ貼り付ける方法

エクセルでAの行(たとえばA1~A63まで)の文字列を全てコピーし、一括で3列21行の範囲内で張り付けることは可能でしょうか? 3列21行の範囲内で貼り付けるとは、たとえば下記の範囲内で、I2、J2、K2、I3、J3、K3の順番で張り付けることです。 I2、J2、K2 I3、J3、K3 I4、J4、K4 I5、J5、K5 ・・・ ・・・ I19、J20、K21 いろいろググってみたのですが、思うような答えが見つかりませんでした。 分かる方がおりましたら、何卒ご教示のほど、宜しくお願い致します。

noname#233083

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数348
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.3

VBAによる処理になります。 ▼手順▼ (1)Alt+F11でVBEを開き、「挿入>標準モジュール」よりモジュールを挿入 (2)最下のVBAコードを貼付 (3)右上の「×」でVBEを閉じる (4)「元データの範囲」を選択後、Ctrlを押しながら「出力先の範囲」(先頭行のみ)を選択  ※添付画像を参考にしてください   ・元データの範囲:黄色い背景色(A1:A63)   ・出力先の範囲:緑色の背景色(I2:K2) (5)Alt+F8でマクロウィンドウを表示し、「振り分け配置」を実行 出力先の範囲を先頭にし、下方向へ元データの範囲の値を順次コピーします。 書式含めたセルコピーを行う場合は、コード内の4行目「設定」で「cnf = 0」としてください。 ■VBAコード Sub 振り分け配置() Dim cnf As Integer, i As Long, j As Long, AreaCount As Integer Dim bs_Rng(1) As Range, bs_cnt(1) As Long, cnt As Long cnf = 1 '設定(値のみの場合:1、セルのコピー:0) AreaCount = Selection.Areas.Count If AreaCount = 1 Then MsgBox "出力先の範囲が選択されていません": Exit Sub For i = 1 To AreaCount   Set bs_Rng(i - 1) = Selection.Areas(i)   bs_cnt(i - 1) = Selection.Areas(i).Count Next If bs_Rng(0).Columns.Count <> 1 Then MsgBox "元データの選択列範囲が不正です": Exit Sub If Not bs_cnt(0) Mod bs_cnt(1) = 0 Then   Set bs_Rng(0) = bs_Rng(0).Resize(bs_cnt(0) + bs_cnt(0) Mod bs_cnt(1), 1)   bs_cnt(0) = bs_Rng(0).Areas(1).Count End If For i = 0 To bs_cnt(0) / bs_cnt(1) - 1   For j = 0 To bs_Rng(1).Columns.Count - 1     cnt = cnt + 1     If cnf = 1 Then       bs_Rng(1).Cells(1, 1).Offset(i, j) = bs_Rng(0)(cnt).Value     Else       bs_Rng(0)(cnt).Copy bs_Rng(1).Cells(1, 1).Offset(i, j)     End If   Next j Next i End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

大変、貴重なご回答ありがとうございます。

関連するQ&A

  • エクセル表の並び替えに関して

    エクセル2002です。 --- K1|K2|K3|K4| ---------------- 9/2|A |- |B |- | 9/3|- |A |A |B | 9/4|B |- |A |B | 9/5|- |- |- |A | を A|K1|9/2|---|---| A|K2|9/3|---|---| A|K3|9/3|9/4|---| A|K4|9/5|---|---| B|K1|9/4|---|---| B|K2|---|---|---| B|K3|9/2|---|---| B|K4|9/3|9/4|---| と別の場所あるいはべつのシートに並び替える方法はあるでしょうか?--の部分は空白です。 元表の列も行も増える可能性があります。 すみませんがぜひよろしくお願いいたします。

  • エクセルマクロ:空白行を除いてコピー

    マクロで次の作業を処理したいのですが、どのようなコードを書けばよいのでしょうか?教えてください。よろしくお願いします。 ○sheet1 ☆左側 列B~Hをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 D列には固定の文字列が与えられており、E列はブランクで、D・Eともに非表示にしておきたい。 B10~B59には、固定で1~50の数字が順番に与えられている。 C10~C59、G10~G59、H10~H59には数値が、F10~F59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ☆右側 列J~Pをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 J10~J59には、固定で51~100の数字が順番に与えられている。 K10~K59、M10~M59、O10~O59、P10~P59には数値が、L10~L59、N10~N59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ○sheet2 sheet1のボタンをクリックし、sheet2を表示させ、 sheet1の値を次のようにsheet2に貼付けたい。 sheet2のB8~H107の範囲内で上から、sheet1の左側B10~H59と右側J10~P59の空白を含む行を除いた セット(列B~H、列J~P)のみをコピーし、左側と右側を連続して、値のみ貼付けたい。 ※C列とK列の空白を判定すれば良い ※並べ替えなどのために別シートを置きたくない ※非表示列の扱い方

  • 光と電子の相互作用の計算について

    こんにちは、下記はmathematicaで、ランダウの「相対論的量子力学」P404の式f(s、u)を計算したものです。プログラムの概要は、残念ながら800文字以上になるので書かれません。、、、、その後、下記を作用させて、式を整理しました。 k0^2-k1^2-k2^2-k3^2->0;j0^2-j1^2-j2^2-j3^2->0; p0^2-p1^2-p2^2-p3^2->m^2;q0^2-q1^2-q2^2-q3^2->m^2; k0*p0-k1*p1-k2*p2-k3*p3->1/2*(s-m^2)/.-k0*p0+k1*p1+k2*p2+ k3*p3->-1/2*(s-m^2); k0*q0-k1*q1-k2*q2-k3*q3->1/2*(m^2-u)/.-k0*q0+k1*q1+k2*q2+ k3*q3->-(1/2*(m^2-u)); p0*q0-p1*q1-p2*q2-p3*q3->(m^2-t/2)/.-p0*q0+p1*q1+p2*q2+ p3*q3->-(1/2*(m^2-u)); j0*p0-j1*p1-j2*p2-j3*p3->1/2*(m^2-u)/.-j0*p0+j1*p1+j2*p2+ j3*p3->-1/2*(m^2-u); j0*q0-j1*q1-j2*q2-j3*q3->1/2*(s-m^2)/.-j0*q0+j1*q1+j2*q2+ j3*q3->-(1/2*(s-m^2)); k0*j0-k1*j1-k2*j2-k3*j3->(-t/2) /.-k0*j0+k1*j1+k2*j2+k3*j3->(t/2); 更に最後にm=0としました。すると、計算結果は、 (1/s^2)*(4*(2*k2^2*p0*q0 + 2*k3^2*p0*q0 + 2*k1^2*(p0*q0 - p1*q1) - 2*k2^2*p2*q2 - 2*k2*k3*p3*q2 - 2*k2*k3*p2*q3 - 2*k3^2*p3*q3 - k2*q2*s - k3*q3*s + k2*p2*u + k3*p3*u - k1*(2*k2*(p2*q1 + p1*q2) + 2*k3*(p3*q1 + p1*q3) + q1*s - p1*u)))となりました。この結果に、どのような法則を使用すれば答えを纏めf(s、u)が得られるのでしょうか?

その他の回答 (3)

  • 回答No.4
  • msMike
  • ベストアンサー率20% (290/1424)

I2: =OFFSET($A$1,(ROW(A1)-1)*3+COLUMN(A1)-1,) で如何でしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。

  • 回答No.2
  • mshr1962
  • ベストアンサー率39% (7416/18946)

直接は不可能です。 VBAでショートカットキーで動作させるか I2に数式を入力して、範囲全体にコピー後に、 もういちどコピーして値として貼り付けですね。 I2=INDIRECT("A"&(ROW()-2)*3+COLUMN()-8) または I2=OFFSET($A$1,(ROW()-2)*3+COLUMN()-9,0) または I2=INDEX($A$1:$A63,(ROW()-2)*3+COLUMN()-8)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。

  • 回答No.1
  • yumi0215
  • ベストアンサー率30% (1311/4316)

コピー元を選択し Ctrl+C コピー先を範囲選択し Ctrl+V これでは駄目でしょうか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

そんなんじゃダメですよ・・・ 一括貼り付けじゃないです。

関連するQ&A

  • Flash lite1.1 でソートをかける方法

    Flash lite1.1でソート(小さい順)に並び替えをしたいと思っているのですがうまく思い浮かばず困っております。 //変数 k1 = 5; k2 = 1; k3 = 3; k4 = 2; k5 = 4; //並び替え q1 = "k2";//中身が1 q2 = "k4";//中身が2 q3 = "k3";//中身が3 q4 = "k5";//中身が4 q5 = "k1";//中身が5 と変数中の数値が小さい変数名順に並び替えをしたいのですが どのような処理をしたらよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • 左側数字と同じ位置の右側で数字のチェック方法は?

    いつも大変お世話になっております。 ご存知の方はぜひ回答をよろしくお願い致します。 【質問】 A1~E5、G1~K5にそれぞれ25個の1~99迄の数字がランダムに重複無しで入っています。 A1=G1、B1=H1、C1=I1、D1=J1.E1=K1、A2=G2・・・最後はE5=K5と、 A1~E5からG1~K5と同じ位置にある数字とその数字から8方向の数字と 同じ数字であれば”同じ”、8方向(上、下、左、右、左上、右上、右下、左下) に同じ数字が上にあれば”上”、下にあれば”下”、左にあれば”左”、 右にあれば”右”、左上にあれば”左上”、右上にあれば”右上” 右下にあれば”右下”、左下にあれば”左下”、 同じ数字が無ければ”無し”とA1~E5の数字をG1~K5でチェックした結果を A7から下にA1~E5までの数字25個を縦に並べて右側に載せる方法が知りたいです。 〇例題   A B C D E F G H I J K  1 11 16 18 20 31   12 18 19 22 25 2 03 04 19 26 28   03 04 26 17 28 3 02 10 17 22 29   01 10 15 29 31 4 05 06 13 21 27   02 05 13 14 16 5 01 07 12 23 25   06 08 30 23 21 〇結果 とその説明 11:無し ※G1に11があるとみなすと、そもそもG1には12、8方向は03,04,18なので       "無し”。 16:無し ※H1に16があるとみなすと、そもそもH1には18、8方向は12,03,04,26,19       なので、無し”。 18:左  ※I1に18があるとみなすと、そもそもI1には19、8方向は18,04,26,17,22       なので、”左”。 20:無し ※J1に20があるとみなすと、そもそもJ1には22、8方向は19,26,17,28,25       なので、”無し”。 31:無し ※K1に31があるとみなすと、そもそもK1には25、8方向は22,17,28なので、       ”無し”。 03:同じ ※G2に03があるとみなすと、そもそもG2には03、8方向は12,18,04,10,01       なので、”同じ”。 04:同じ ※H2に04があるとみなすと、そもそもH2には04、8方向12,18,19,26,15,10,       01,03なので、”同じ”。 19:上  ※I2に19があるとみなすと、そもそもI2には26、8方向は18,19,22,17,29,15,       10,04なので、”上”。 26:左  ※J2に26があるとみなすと、そもそもJ2には17、8方向19,22,25,28,31,29,15,       26なので、”左”。 28:同じ ※K2に28があるとみなすと、そもそもK2には28、8方向は25,22,17,29,31       なので、”同じ”。 02:下  ※G3に02があるとみなすと、そもそもG3には01、8方向は03,04,10,05,02       なので、”下”。 10:同じ ※H3に10があるとみなすと、そもそもH3には10、8方向03,04,26,15,13,03,       02,01なので、”同じ”。 17:右上 ※I3に17があるとみなすと、そもそもI3には15、8方向は04,26,17,29,14,13,       05,10なので、”右上”。 22:無し ※J3に22があるとみなすと、そもそもJ3には29、8方向26,17,28,31,16,14,13,       15なので、”無し”。 29:無し ※K3に29があるとみなすと、そもそもK3には31、8方向は28,17,29,14,16       なので、”無し”。 05:右  ※G4に05があるとみなすと、そもそもG4には02、8方向は01,10,05,08,05       なので、”右”。 06:左下 ※H4に06があるとみなすと、そもそもH4には05、8方向01,10,15,13,30,08,       06,02なので、”左下”。 13:同じ ※I4に13があるとみなすと、そもそもI4には13、8方向は10,15,29,14,23,30,       08,05なので、”同じ”。 21:右下 ※J4に21があるとみなすと、そもそもJ4には14、8方向15,29,31,16,21,23,30,       13なので、”右下”。 27:無し ※K4に27があるとみなすと、そもそもK4には16、8方向は31,29,14,23,21       なので、”無し”。 01:無し ※G5に01があるとみなすと、そもそもG5には06、8方向は02,05,08なので、       ”無し”。   07:無し ※H5に07があるとみなすと、そもそもH5には08、8方向は06,02,05,13,30       なので、”無し”。 12:無し ※I5に12があるとみなすと、そもそもI5には30、8方向は08,05,13,14,23       なので、”無し”。 23:同じ ※J5に23があるとみなすと、そもそもJ5には23、8方向は30,13,14,16,21       なので、”同じ”。 25:無し ※K5に25があるとみなすと、そもそもK5には21、8方向は16,14,23なので       ”無し”。 〇注意事項  ・使用するエクセルは2010です。  ・セルの数字は表示上、2桁で表しています。(例:1ではなく01)  ・セルの数字は毎回、ランダムに変わります。 以上、よろしくお願いします。

  • エクセルで関数を使って自動処理出来ないでしょうか?

    シート1に、Aさんのデータがk1.k2.k3.k4.k6.k7にあります。Bさんk10.k11.k12.k13.k15.k16、Cさんk19.k20.k21.k22.k24.k25という様に、約100名分あります。 そのk列のデータをシート3に 1行目 k1.k2.k3.k4.k6.k7 2行目 k10.k11.k12.k13.k15.k16 3行目 k19.k20.k21.k22.k24.k25 ↓続く 100行目   上記のように行を詰めて表示させたいのですが、何か良い方法はありますでしょうか? よろしくお願いします。

  • 式の代入などを正確かつ早く行い正解に導くには?

    下記は数学でなく化学の問題ですが、 [H]=(k2[H2][Br])/(k3[Br2]+k4[HBr]) [Br]=((k1/k5)[Br2])^1/2 です。 d[HBr]/dt=(b[H2][Br2]^(1/2))/(a+([HBr]/[Br2])) aとbをk1&#65374;k5を用いて示せ という問題です。 答えは a=k3/k4 b=2(k2k3/k4)(k1/k5)^1/2 これはとある資格試験の過去問ですが、 どうしても途中で間違えたり、 かなりの時間が掛かってしまいます。 昔からこのような問題が苦手です。 正確かつ早く行う方法はないでしょうか?

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • 連鎖反応 水素と臭素の反応

    連鎖開始反応 Br2→2Br (反応速度 k1) 連鎖成長反応 Br+H2→HBr+H (反応速度 k2) H+Br2→HBr+Br (反応速度 k3) 連鎖阻害反応 H+HBr→H2+Br (反応速度 k4) 連鎖停止反応 Br+Br→Br2 (反応速度 k5) d[Br]/dt=2k1[Br2]-k2[Br][H2]+k3[H][Br2]+k4[H][HBr]-2k5[Br]^2=0 d[H]/dt=k2[Br][H2]-k3[H][Br2]-k4[H][HBr] d[HBr]=k2[Br][H2]+k3[H][Br2]-k4[H][HBr]=k3[H][Br2] なぜ、d[Br]/dt=0 d[H]/dt=0となるのですか? d[Br]/dt=2k1[Br2]-k2[Br][H2]+k3[H][Br2]+k4[H][HBr]-2k5[Br]^2とありますが、なぜ2k5[Br]^2となるのですか?2k5[Br]ではだめなのですか? なぜ、d[HBr]=k2[Br][H2]+k3[H][Br2]-k4[H][HBr]=k3[H][Br2]なのですか? d[HBr]=k2[Br][H2]+k3[H][Br2]-k4[H][HBr]=k2[HBr][H]+k3[H][Br2]ではない理由を教えてください。 詳しい解説お願いします。

  • エクセルでの行数・列数を指定しての一括コピーの方法

    エクセルの活用テクニックについて質問させていただきます。 よろしくお願い致します。 エクセルで、A1のセルに入っている内容を、 「A列の1000行目まで一括でコピーする」なので、 行数を指定しての一括コピーというのできるのでしょうか? また、もし可能であるとすれば、 行だけではなく列でもそういった事は可能でしょうか? ご存知の方がいらっしゃれば、教えていただけると助かります。 よろしくお願い致します。

  • 偏微分方程式の数値解析

    お忙しいところすみません. 現在,FDTD法による数値解析を行っています. FDTD法は空間及び時間微分に対して中心差分を行っていますがこれを4次のルンゲクッタ法で行うことは出来るのでしょうか?ある参考書に以下のような「連立1階微分方程式」を4次のルンゲ-クッタ法で解くというのがありました. dy/dt=f(t,y,z) dz/dt=g(t,y,z) これを4次のルンゲ-クッタ法で解くと y(n+1)=y(n)+1/6*(k1+2*k2+2*k3+k4) z(n+1)=z(n)+1/6*(j1+2*j2+2*j3+j4) ここで k1=Δt*f(t(n),y(n),z(n)) j1=Δt*g(t(n),y(n),z(n)) k2=Δt*f(t(n)+Δt/2,y(n))+k1/2,z(n)+j1/2) j2=Δt*g(t(n)+Δt/2,y(n))+k1/2,z(n)+j1/2) k3=Δt*f(t(n)+Δt/2,y(n))+k2/2,z(n)+j2/2) j3=Δt*g(t(n)+Δt/2,y(n))+k2/2,z(n)+j2/2) k4=Δt*f(t(n)+Δt,y(n)+k3,z(n)+j3) j4=Δt*g(t(n)+Δt,y(n)+k3,z(n)+j3) これをマクスウェルの方程式に対応させ ε∂E(t,x,y,z)/∂t=f(t,H)=∇×H μ∂H/∂t=g(t,E)=-∇×E として出来ないこともない気がするのですが. なぜこの方法を試みようとした理由は現在,通常のFDTD定式化により数値解析を行っていますが ・プログラムは正しい ・始めの部分は正常に計算出来ている ・途中から凹凸が出始め,それが成長して発散している という事態になり,数値的不安定の可能性が強いと思ったからです.オイラー法やルンゲ-クッタ法ではこのような異常振動は進み幅を小さくすれば止まる(ということが数学的に証明されている)ようです. 何卒回答の方,よろしくお願い致します.

  • Excel n行毎の合計数値

    Excelで2行毎、できればn行毎に合計値を求めるセルを作りたいのです。 A1:A10に{1,2,3,,,,}と値が入っているとして、B1から B1=A1+A2 B2=A3+A4 B3=A5+A6 というふうになり、B1=3,B2=7,B3=11,,,と1行毎に合計する範囲がズレていくような列を作るには どうすればいいでしょうか? C1=A1+A2+A3 C2=A4+A5+A6 C3=A7+A8+A9 となっていくような列を作る必要も出てきそうなので、 n行合計ずつ以外でも出来る方法をお願いします。

  • Excel 範囲指定

    例えば、次の関数について。 =COUNTIF(K2:K6,"1") 範囲をK2:K6だけではなく、A2:A6、C2:C6も指定したいのですが、 行や列が飛んでしまうと、うまく範囲指定できません。 どうすれば一緒の範囲にできるのでしょうか?