- ベストアンサー
エクセルのマクロの事?
エクセルで A1あ、B1い、C1う A2え、B2お、C2か A3き、B3く、C3け 以下続く このようになっている物を A1あ A2い A3う A4え A5お A6か A7き A8く A9け こんな感じにマクロを使って変更したいのですが、どのようにすればいいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 データが、もう少し、複雑な内容でしたら、以下のようなコードではうまくいかないとは思いますが、初歩的なマクロなら、こんな風にしますね。別に、マクロの経験があってもなくても構わないですが、この程度なら、[標準モジュール]に貼り付けて、[Alt+F8] で呼び出すだけで、結構です。 内容を説明してください、ということになると、ちょっと・・・(^^ゞ 書き出し場所は、Worksheets("Sheet2") になっています。 このマクロの場合は、同じシートの自同じ場所には、上書きは出来ませんから、配列変数にデータを確保しなければなりません。 '標準モジュールに書き出してください。 '----------------------------------------- Sub Test1() Dim r As Range Dim c As Variant Dim i As Long Set r = Range("A1").CurrentRegion Application.ScreenUpdating = False i = 1 '初期値 For Each c In r If Not (IsEmpty(c.Value)) Then Worksheets("Sheet2").Cells(i, 1).Value = c.Value i = i + 1 End If Next c Application.ScreenUpdating = True Set r = Nothing End Sub
その他の回答 (3)
- higekuman
- ベストアンサー率19% (195/979)
> あくまでも、質問は例であって、データは300件以上あります。 > これを手作業で行うのは困難なので質問しています。 そんなのは解っています。 あなたがどれくらいマクロのことを知っているのか解らないので、このような補足要求をしただけです。 > 手作業ではやりません。もしやるとすると挿入、コピー、貼り付けの繰り返ししか思いつきません。 その「挿入、コピー、貼り付け」をマクロ記録して、それをもとにして、For~NextやDo While~Loopなどで繰り返します。 まさか、マクロ作成依頼、というわけじゃないですよね?
- kernel_kazzz
- ベストアンサー率29% (895/2993)
マクロを組んだ経験はあるのですか? 経験のある無しで説明の仕方が随分違ってくると思います。 今のシートを直接加工するのでは無く、複数のループを使って別シートにデータを貼り付けていく方法を取るのが簡単でしょう。 ループのカウントの為には、worksheets("sheetname").cells(i,j)の表記を理解されているかどうかも説明の判断基準になると思いますよ。
- higekuman
- ベストアンサー率19% (195/979)
もし、マクロではなく、あなたが手作業でやるとしたら、どういうやり方をしますか?
補足
手作業ではやりません。もしやるとすると挿入、コピー、貼り付けの繰り返ししか思いつきません。 あくまでも、質問は例であって、データは300件以上あります。 これを手作業で行うのは困難なので質問しています。
お礼
ご回答ありがとうございました。解決しました。