変数の値を改行した状態でエクセル出力する方法

タグの編集
投稿者 田中  (社会人) 投稿日時 2023/6/6 09:07:06
変数aにAAA 111、BBB 2222、CCC 333333、DDD 44444444、EEE 5555が入っています。

※英語3個+スペース+数字(3~11桁)の組み合わせの値が「、」で区切られ、最大5個入る

P = A1 ←値を入れるセル番号
D = a  

writExcel(D,P)という記述でA1にaを出力します。
3個目の「、」で改行する方法をご教示ください。
※エクセルでは可能でしたが、出来ればエクセルは変更したくないです。

現在
AAA 111、BBB 2222、CCC 333333、DDD 
44444444、EEE 5555

理想
AAA 111、BBB 2222、CCC 333333、
DDD 44444444、EEE 5555
投稿者 (削除されました)  () 投稿日時 2023/6/6 10:51:39
(削除されました)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/6/6 10:52:47
対象言語は何でしょうか。
VBA ? C#? あるいは VB.NET ?

前提条件があまりにも少なすぎるので、具体的な回答が付けられません。
そのため回答も具体的なものではなく、概要レベルのものになりますが:


> 変数aにAAA 111、BBB 2222、CCC 333333、DDD 44444444、EEE 5555が入っています。
こういうことですか?
Dim a As String  'VBA / VB.NET 
a = "AAA 111、BBB 2222、CCC 333333、DDD 44444444、EEE 5555"



> P = A1 ←値を入れるセル番号
> D = a  
こういうことですか?
Dim P As String, D As Variant 'VBA 
'Dim P As String, D As Object 'VB.NET 
P = "A1"
D = a



> writExcel(D,P)という記述でA1にaを出力します。
writExcel とは何でしょうか。自作のメソッドのように見えますが、
内部的にはどのような実装になっているのでしょうか。


> ※英語3個+スペース+数字(3~11桁)の組み合わせの値が「、」で区切られ、最大5個入る
「英語」というのは「アルファベット」の誤記とは思いますが、
この条件に合致しているかどうかは、正規表現を使うと簡単に判定・分離できますね。


> 3個目の「、」で改行する方法をご教示ください。
Excel の場合、セル内改行を行うにはデータ中に LF 改行を含めるようにします。
元データに LF を含められないのなら、Excel へ出力する処理の中で
LF を補うようにしてやればよいのではないでしょうか。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/6/6 10:59:32
> 元データに LF を含められないのなら、Excel へ出力する処理の中で
> LF を補うようにしてやればよいのではないでしょうか。

処理イメージ:

a = "AAA 111、BBB 2222、CCC 333333、DDD 44444444、EEE 5555"
a2 = Split(a, "、")
If UBound(a2) > 2 Then
  a2(3) = vbLf & a2(3)
End If
Dim a3 As String
a3 = Join(a2, "、")

' 上記 a3 の中身は、下記のように 3 つ目の「、」の後ろに 
' LF 改行が含まれた文字列になる。 

' a3 = "AAA 111、BBB 2222、CCC 333333、" & vbLf  _ 
'    & "DDD 44444444、EEE 5555"