マクロ内の区切られたテキストから列へ(Microsoft Excel)
Excelの最も便利な機能の1つは、テキストから列への機能です。この機能を使用すると、指定した基準に従ってセルの内容を個々のセルに簡単に分割できます。この機能を使用する1つの方法は、セル内の文字を認識し、それらの文字を使用して分割が行われる場所をトリガーできるようにすることです。このタイプの分割は、_delimited_分割と呼ばれます。
作成しているマクロで、区切られたテキストから列への操作をどのように実行できるか疑問に思われるかもしれません。これは、設定した選択範囲でTextToColumnsメソッドを使用することで簡単に実行できます。次の非常に単純なマクロについて考えてみます。
Sub ExampleSplit1() Selection.TextToColumns _ Destination:=Range("A2"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, _ Tab:=True, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:="-" End Sub
TextToColumnsメソッドに設定できるすべての変数に注意してください。
これらの変数のほとんどは、これが区切られた分割であるためにのみ必要です。変数は、メソッドによって区切り文字として使用されるものを設定します。
この機能を手動で使用している場合、変数はタブ行から始まり、テキストを列に変換ウィザードのステップ2で行う設定に直接対応します。 Tab、Semicolon、Comma、およびSpaceは、その文字を区切り文字として使用するかどうかに応じて、TrueまたはFalseのいずれかに設定できます。
「ユーザー定義」の区切り文字が必要かどうかに応じて、Other変数をTrueまたはFalseに設定することもできます。 Trueに設定する場合は、区切り文字として使用する文字と同じOtherChar変数を設定する必要があります。
同じマクロでTextToColumnsメソッドを複数回使用する場合、最初の呼び出しに続く呼び出しで行う必要があるのは、前の呼び出しとは異なる変数を変更することだけです。たとえば、同じマクロでメソッドを2回呼び出しており、最初はダッシュ文字のインスタンスで分割を行い、2回目は小文字のxのインスタンスで分割を行うとします。 。次のようにマクロを組み合わせることができます:
Sub ExampleSplit2() Dim objRange1 As Range Dim objRange2 As Range 'Set up the ranges Set objRange1 = Range("A2:A20") Set objRange2 = Range("A21:A35") 'Do the first parse objRange1.TextToColumns _ Destination:=Range("A2"), _ DataType:=xlDelimited, _ Tab:=False, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:="-" 'Do the second parse objRange2.TextToColumns _ Destination:=Range("A21"), _ DataType:=xlDelimited, _ OtherChar:="x" End Sub
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2929)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。