Excel 数式の範囲貼り付けについて

2列(A列、B列)1000行程のデータを持つExcelがあります。

3列目(C列)に「A列+全角スペース+B列」の文字列を1000行全てに書き込みたいのですが、
A列+全角スペース+B列を代入して、それをセルに書き込んでいくと
かなり時間が掛かる処理となります。

そこで、「=A1&" “&B1」の数式をC列に張り付けて、
1000行の範囲すべてにコピーしたいのですが、このような処理は可能でしょうか。
(2行目はA2&” “&B2、3行目はA3&” "&B3となるように)

あるいは、上記目的に適した方法があればご教示頂けますと幸いです。

どうぞよろしくお願いいたします。

エクセルに数式を用いると作成後のファイルも開くのが重かったりするので、
datatableを用いてWrite Rangeを用いて記載すれば、処理もファイルも重くならないかと思います。

Excel アプリケーションスコープを用いてエクセルA列、B列を「範囲を読み込み」アクティビティ で読み込む
※項目名がない場合はColumn0、Column1として読み込まれます

読み込んだDataTableにたいしてデータ列(C列分)を追加

For Each Row
row(“新規列名”) = row(“A列名”) & " " & row(“B列名”)

最終的にWrite Rangeでファイルに書き込む

1つのWrite Cellアクティビティでできます。
・Write Cellアクティビティの プロパティ
SheetName: “Sheet1”
Range: “C1:C1000”
Value: “A1 & B1”

1 Like

Lihyun 様

ご返信ありがとうございます。
対象のファイルをExcelアプリケーションスコープで開き、
範囲を読み込み、For Each Rowで処理を試みてみたのですが
以下のエラーとなります。

前提:A列は「名前」B列は「番号」C列は「結合」という列名でヘッダーがあります。

「代入」の右辺は
「row(“名前”)&" "&row(“番号”)」で指定しております。
何か書式に誤りがございますでしょうか。

右辺を「row(“名前”)」だけにした場合はC列にそのまま名前だけが挿入されます。

度々恐れ入りますが、ご指導のほどお願いいたします。

Haraさん

すみません。「.ToString」がぬけておりました。

row(“結合”) = row(“名前”).ToString & " " & row(“番号”).ToString

再度試していただけますでしょうか

2 Likes

Lihyun様

再度のご返信ありがとうございます。

ご指示の通りしてみましたところ、
エラーが「式の終わりが必要です」と変化しました。

私なりに試してみたところ、&では無く+にしたらエラーが無くなり、
希望のデータ挿入状態となりました!

大変助かりました、ありがとうございました。

amie1110様

お世話になります。
ご返信ありがとうございました。

こんかいはLihyun様の回答の方法で解決をさせて頂きましたが、
ご助言誠にありがとうございました。今後ともよろしくお願いいたします。

Haraさん

よかったです。
「式の終わりが必要です」のエラーは 「&」の前後に半角空白を入れれば解決すると思います。

また後学のためになりますが、「&」「+」どちらも「文字列の結合」として使用できますが、「+」に関しては「足し算の意味合い」と「文字列の結合」どちらにも使用できてしまうため、気を付ける必要があります。

2 Likes

Lityun様

追加での情報、誠にありがとうございます。
&、+の違いとエラー回避方法について承知しました。
細かい部分までご指導、本当にありがとうございました。精進いたします。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.