この記事では、セル内のテキストを縦に列に区切るマクロを作成します。区切り文字に基づいて、セル内のテキストを区切ることができます。区切り文字は、コンマ、スペース、円記号などのいずれかです。

マクロの動作を説明するために、セルA10のサンプルテキストとしてURLを使用しました。 「送信」ボタンをクリックするとマクロを実行できます。

ArrowSampleData

マクロを実行した後、次の列に出力を返します。

セル内のテキスト値は、2番目の列の複数のセル内の複数のサブ文字列に分割されます。

ArrowAfterRunningMacro

ロジックの説明

2つのタスクを実行するマクロ「texttocolumns」を作成しました。

まず、区切り文字に基づいて、A10の文字列を複数のサブ文字列に区切ります。この例では、区切り文字としてダッシュ(-)を使用しています。次に、生成されたサブ文字列を複数の列から単一の列にトラバースします。

コードの説明

Rng.texttocolumns Destination:= Rng.Offset(0、1)、DataType:= xlDelimited、_ TextQualifier:= xlDoubleQuote、ConsecutiveDelimiter:= True、Other:= True、OtherChar _:= “-“

上記のコードは、「Rng」の範囲で文字列を区切るために使用されます。 Destinationは、出力が表示される場所の範囲を指定します。 DataTypeは、使用される区切り文字のタイプを指定します。 TextQualifierは、テキスト修飾子に使用される文字を指定します。 OtherCharは、区切り文字として使用される文字を指定します。

コードについては以下に従ってください

Sub texttocolumns()

'Declaring variables

Dim StartRow, i, LastCol As Long

Dim Rng As Range

'disabling the display alerts

Application.DisplayAlerts = False

'Initializing the variable

StartRow = 10

Set Rng = Range("A10")

'Separting the text based on the delimiter

Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _

:="-"

'Finding the column number of cell containing the last string after delimiting

LastCol = Rng.End(xlToRight).Column

'arranging the text in columns to rows

For i = 2 To LastCol

Cells(10, i).Cut Cells(StartRow, 2)

StartRow = StartRow + 1

Next i

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください