|
▼かみちゃん さん:
こんばんは、しんです。たびたびですみませんが
>さきほどのコードのうち、以下の★印の行を修正してください。
>
> For ColumnNo = 3 To MaxColumn '★
> If Cells(RowNo, ColumnNo).Value <> "" Then
> If ColumnNo > 3 Then '★
> Rows(RowNo).Copy
> Rows(RowNo + 1).Insert Shift:=xlDown
> RowNo = RowNo + 1
> MaxRow = MaxRow + 1
> Application.CutCopyMode = False
> Cells(RowNo - 1, ColumnNo).Copy Destination:=Cells(RowNo, 3) '★
> End If
> Else
> Exit For
> End If
> Next
>
というご助言し従って、VBAコードを書き改め処理してみたのですが、今度は
ワークシートSheet1に変換された表は
┌─┬─┬─────────┐
│A │B │ │
├─┼─┼─────────┘
│1 │あ│
├─┼─┤
│2 │い│
├─┼─┤
│3 │う│
├─┼─┤
│3 │う│
├─┼─┤
│3 │う│
├─┼─┤
│4 │え│
├─┼─┤
│5 │お│
├─┼─┤
│5 │お│
├─┼─┤
│5 │お│
└─┴─┘
のようになってしまい、やはり、私が望んでいた処理結果(さきほどのメール)のようにはなりませんでした。
>なお、さきほどのコードも含めてSheet1自身を展開するようにしています。
>Sheet2はあらかじめ用意してあるのでしょうか?
はい、Sheet2はあらかじめ用意してあり、これに変換結果を表記したいんですが・・・。それと行と列の数は任意であり、カンマ区切りのある文字列のあるセルはいつも最終列です。
>最初にSheet1をSheet2にコピーして開始する方法であれば、このコードが使えるのですが、はじめから用意してあるSheet2に展開したいのであれば、かなり手を加えないといけなくなります。
もし、Sheet2への出力がかみちゃんにとって大変な作業であれば、あまりご迷惑をおかけするのも申し訳けありませんので、Sheet1への出力でもかまいません。
|
|