- ベストアンサー
Excelでデータを変換する方法と自動行設定について
- Excelでデータを変換する方法と自動行設定について知りたいです。
- Excelでデータを連続して変換する方法や、8列に自動行設定する方法を教えてください。
- Excelで1列に並んだ数字を8列に変換し、自動的に行を設定して折り返す方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAの一例です。 データはA1から下に並んでいるものとします。 Sub test01() v = Range("A" & Rows.Count).End(xlUp).Row '数 x = v \ 8 '商 y = v Mod 8 '余 r = IIf(y = 0, x, x + 1) '行 MsgBox r & "行目までで折り返します。", vbInformation, "(´^∇^)σ " For i = 1 To 8 Range("A1").Resize(r).Offset(r * (i - 1)).Cut Range("A1").Offset(0, i - 1) Next i End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
No2のmerlionXXです。 > VBAの記述と保存の方法をご教授いただけないでしょうか。 ご質問では「このようにマクロを組んで編集したい」とあったので、当然VBAの使い方はおわかりだと思っていました・・・・。 では、安全のためオリジナルのシートをコピーして控えをとってから以下の手順を試してみてください。(エクセル2007の場合はこれとは手順がちがうようですが。) データのあるシートを開いたままで、 1.AltキーとF11キーをいっしょに押して Visual Basic Editor を呼び出します。 2.Visual Basic Editor のメニューから挿入、標準モジュールで、出てきたコードウィンド(右側の白い広い部分)に先ほどのコード(SubからEnd Subまで)をコピーして貼り付けします。 3.また、Alt+F11キーでワークシートへもどります. 4.エクセルのメニューから、「ツール」、「マクロ」、「マクロ」で出てきたマクロ名(test01)を選択して実行します。 これでデータがご希望の形に編集されると思います。 マクロはエクセルのファイルを保存すればいっしょに保存されます。
お礼
No2のmerlionXXさま 大変有り難うございました。 無事アドバイスいただいたように作業いたしましたら 出来ました。 本当に有り難うございます。
- hallo-2007
- ベストアンサー率41% (888/2115)
別シートに A B C 1 8 2 3 のA1に8列の意味で 8 と入れる A2セルに =INDEX(データ!$A:$A,IF(ROW(A1)<COUNTA(データ!$A:$A)/$A$1,ROW(A1)+(COLUMN(A1)-1)*COUNTA(データ!$A:$A)/$A$1,1000)) 右へコピィ、下へコピィしてください。 余った部分に 0 が表示されますが、条件付書式などで 文字の色を白にでもしてください。
補足
早速のアドバイス有り難うございます。 以下の作業を行ってみましたが、うまくいきませんでした。 sheet1に元データ A列に数値データがすべて入ります。 sheet2のA1に8 A2に下記式をコピー 同様にA3以降下にコピー C2以降横にもコピー してみました。 式を入れたところが、#REF! エラーになってしまいます。 恐縮ですが、再度確認させてください。 よろしくお願いいたします。
補足
失礼 上記VBAを記述しておくのでしたね。 見落としておりました。 なお、恐縮ですが、この VBAの記述と保存の方法をご教授いただけないでしょうか。