Excel VBA 質問スレッド №1385 (解決済)
カンマ区切りを縦列へ
投稿者 : またぎ 投稿日時 : 2023/04/25(Tue) 22:14:01 OS : Windows 10 EXCEL : Excel 2016
列にあるカンマ区切りのデータを別シートのあるセルを起点に下に1セルずつ分割して貼り付けるマクロを動かしておりますが、
transposeを使用しているためデータ数が多くなり1つのセルが255文字を超えると動かなくなってしまいます。
transposeを使用せずに同様の動きをすることは可能でしょうか?
列にあるカンマ区切りのデータを別シートのあるセルを起点に下に1セルずつ分割して貼り付けるマクロを動かしておりますが、
transposeを使用しているためデータ数が多くなり1つのセルが255文字を超えると動かなくなってしまいます。
transposeを使用せずに同様の動きをすることは可能でしょうか?
Sub レイアウト()
Dim xArr() As String
Dim Rg As Range
Dim Rg1 As Range
Set Rg = Sheets("貼付シート").Range("E2:E100")
Set Rg1 = Sheets("レイアウト").Cells(1, 35)
xArr = Split(Join(Application.Transpose(Rg.Value), ","), ",")
Rg1.Resize(UBound(xArr) + 1) = Application.Transpose(xArr)
Rg1.Parent.Activate
Rg1.Resize(UBound(xArr) + 1).Select
End Sub
スポンサーリンク
[返信 1] Re : カンマ区切りを縦列へ
投稿者 : ふたまた 投稿日時 : 2023/04/26(Wed) 01:38:11
[[20230425161116]] 『カンマ区切りデータのを列に貼り付け』(またぎ)
https://www.excel.studio-kazu.jp/kw/20230425161116.html
[[20230425161116]] 『カンマ区切りデータのを列に貼り付け』(またぎ)
https://www.excel.studio-kazu.jp/kw/20230425161116.html
[返信 2] Re : カンマ区切りを縦列へ
投稿者 : さんこう 投稿日時 : 2023/04/26(Wed) 07:59:23
>transposeを使用せずに同様の動きをすることは可能でしょうか?
もちろん可能です。
むしろ、単純にループで書くほうが一般的かと思いますが。
>transposeを使用せずに同様の動きをすることは可能でしょうか?
もちろん可能です。
むしろ、単純にループで書くほうが一般的かと思いますが。
[返信 3] Re : カンマ区切りを縦列へ
投稿者 : てらてら 投稿日時 : 2023/04/26(Wed) 08:21:46
こんにちは。
コードを見ますと、列のデータをわざわざカンマ付きの文字列にしていますが、以下のような方法で実現できると思います。
表題のように「カンマ区切りデータのを列に貼り付け」したいのであれば、カンマ区切りデータをSplit関数で配列にして、それをセルに配置していけばOKだと思います。
こんにちは。
コードを見ますと、列のデータをわざわざカンマ付きの文字列にしていますが、以下のような方法で実現できると思います。
Sub macro()
Dim i As Long
For i = 2 To 100 'Range("E2:E100")
Sheets("レイアウト").Cells(i - 1, 35) = Sheets("貼付シート").Cells(i, "E")
Next i
End Sub
表題のように「カンマ区切りデータのを列に貼り付け」したいのであれば、カンマ区切りデータをSplit関数で配列にして、それをセルに配置していけばOKだと思います。
[返信 4] Re : カンマ区切りを縦列へ
投稿者 : またぎ 投稿日時 : 2023/04/26(Wed) 12:59:39
■[返信 3] てらてらさん(2023-04-26 08:21:46)の記事
> こんにちは。
>
> コードを見ますと、列のデータをわざわざカンマ付きの文字列にしていますが、以下のような方法で実現できると思います。
>
> Sub macro()
> Dim i As Long
> For i = 2 To 100 'Range("E2:E100")
> Sheets("レイアウト").Cells(i - 1, 35) = Sheets("貼付シート").Cells(i, "E")
> Next i
> End Sub
>
> 表題のように「カンマ区切りデータのを列に貼り付け」したいのであれば、カンマ区切りデータをSplit関数で配列にして、それをセルに配置していけばOKだと思います。
皆様ありがとうございました。解決しました。
■[返信 3] てらてらさん(2023-04-26 08:21:46)の記事
> こんにちは。
>
> コードを見ますと、列のデータをわざわざカンマ付きの文字列にしていますが、以下のような方法で実現できると思います。
>
> Sub macro()
> Dim i As Long
> For i = 2 To 100 'Range("E2:E100")
> Sheets("レイアウト").Cells(i - 1, 35) = Sheets("貼付シート").Cells(i, "E")
> Next i
> End Sub
>
> 表題のように「カンマ区切りデータのを列に貼り付け」したいのであれば、カンマ区切りデータをSplit関数で配列にして、それをセルに配置していけばOKだと思います。
皆様ありがとうございました。解決しました。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-05 19:00:09 )