縦の列にセル内のテキストを区切る
この記事では、セル内のテキストを縦に列に区切るマクロを作成します。区切り文字に基づいて、セル内のテキストを区切ることができます。区切り文字は、コンマ、スペース、円記号などのいずれかです。
マクロの動作を説明するために、セルA10のサンプルテキストとしてURLを使用しました。 「送信」ボタンをクリックするとマクロを実行できます。
マクロを実行した後、次の列に出力を返します。
セル内のテキスト値は、2番目の列の複数のセル内の複数のサブ文字列に分割されます。
ロジックの説明
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]までご連絡ください