- ベストアンサー
エクセルで改行したものをメモ帳に貼り付け
- エクセルで改行したテキストをメモ帳に貼り付ける方法について教えてください。
- エクセルで改行した文字列がメモ帳に反映される際に困っています。改行された状態でメモ帳に貼り付ける方法を教えてください。
- エクセルで作成した改行テキストを一括でメモ帳に反映させる方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.4です。 補足の件について・・・ 結局B列の文字数で前回同様の操作を行えばよい!というコトですね? ↓のコードに変更してマクロを実行してみてください。 今回もデータは1行目からあるとします。 Sub Sample2() Dim i As Long, k As Long, cnt As Long For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1 '←最終列取得のためなので「A」のままでもOK If Len(Cells(i, "B")) > 20 Then cnt = Int(Len(Cells(i, "B")) / 21) Rows(i + 1 & ":" & i + cnt).Insert For k = 1 To cnt With Cells(i + k, "B") .Value = Mid(.Offset(-1), 21, Len(.Offset(-1))) .Offset(-1) = Replace(.Offset(-1), .Value, "") End With Next k End If Next i Columns.AutoFit End Sub ※ 前回のコードとほとんど同じです。「A」列の部分を「B」列に変えただけです。 こんな感じでよろしいのでしょうかね?m(_ _)m
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 データはA列の1行目からあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() 'この行から Dim i As Long, k As Long, cnt As Long For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1 If Len(Cells(i, "A")) > 20 Then cnt = Int(Len(Cells(i, "A")) / 21) Rows(i + 1 & ":" & i + cnt).Insert For k = 1 To cnt With Cells(i + k, "A") .Value = Mid(.Offset(-1), 21, Len(.Offset(-1))) .Offset(-1) = Replace(.Offset(-1), .Value, "") End With Next k End If Next i End Sub 'この行まで これでA列に20文字以内に分割されますので、 これをメモ帳にコピー&ペーストしてみてください。m(_ _)m
補足
早速ありがとうございます!すごい!なるほど、分割して下のセルに繰り下げていく、ということなんですね。 ずっと同一セル内で改行>貼り付けとしか考えてませんでした。 なので、最初の質問に書かなかったのですが、実は、改行させたい文字列の隣に、その文字列の名称が入る列があるんです。。今更すみません。 下のようになります。 A列 B列 りんご りんごの説明(40字以上の場合) なし なしゃの説明(40字以下の場合) みかん みかんの説明(20字以下の場合) これを りんご りんごの説明・・・・・・・ りんごの説明の続き・・・ さらにりんごの説明・・・ なし なしの説明云々・・・ なしがどうのこうの みかん みかんとは・・・・ このように、もともと対になっていたA列とB列が、B列が改行されたあとも、対応するようにできないでしょうか。 上の例で言うと、B列の改行が3行にわたるのか、2行になるのか、1行になるのかによってA列の繰り下げ方が変わってしまうので、どのようにしたらいいのか、想像もできません。 アドバイスいただけないでしょうか。 どうぞよろしくお願いします!!
- sknbsknb2
- ベストアンサー率38% (1158/3030)
既に有用な回答が提示されていますが、エクセルで改行された状態になっているものをメモ帳に貼り付けたい場合の方法としては、 (1)一旦ワードパッドに貼り付ける。 (ワードパッドでなくても、改行コードを認識するエディタならなんでも) (2)ワードパッド(orエディタ)の文字列をコピーしてメモ帳に貼り付ける。 という手順でも可能です。ご参考まで。
お礼
ありがとうございます!なるほど、ワードパッドだと改行が反映されるのですね! 考えすらしませんでした。助かりました!
- mt2008
- ベストアンサー率52% (885/1701)
対象文字列がA列に入っているとして、B列に20文字ごとに切り分けた文字列を入れています。 B列をコピーしてメモ帳に貼り付けてください Sub Sample() nRow = 1 nLength = 20 nMaxRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To nMaxRow sTarget = Range("A" & i) For j = 1 To Len(sTarget) Step nLength Range("B" & nRow) = "'" & Mid(sTarget, j, nLength) nRow = nRow + 1 Next j Next i End Sub
補足
わかりやすくありがとうございます! 分割して下のセルに貼り付けていくのですね・・・ 実は、上の回答4の方にも書いたのですが、 完全に説明不足でした。 A列 B列 りんご りんごの説明(40字以上の場合) なし なしゃの説明(40字以下の場合) みかん みかんの説明(20字以下の場合) これを りんご りんごの説明・・・・・・・ りんごの説明の続き・・・ さらにりんごの説明・・・ なし なしの説明云々・・・ なしがどうのこうの みかん みかんとは・・・・ このように、もともと対になっていたA列とB列が、B列が改行されたあとも、対応するようにできないでしょうか。 今更、ほんとすみません・・・
- aokii
- ベストアンサー率23% (5210/22062)
A1セルに10字~50字程の全角文字があるとして、以下の式をB1セル入れて下にドラッグコピー。 =MID($A$1,(ROW(B1)-1)*20+1,20)
お礼
ありがとうございます!関数でもできるのですね!助かりました!
お礼
さっそくのご回答、ありがとうございます! 無事できました!! すばらしいです!!!