2

私は何年も前に「C」で文字列のスライスに慣れていますが、この特定のタスクのためにVBAを使用しようとしています。

今、私は「これは文字列です」という文字列を作成し、新しいワークブックを作成しました。

今必要なのは、文字列スライスを使用して、文字列の最後に「t」をA1に、「h」をA2に、「i」をA3などに配置することです。

その後、すべての文字列がスライスされるまで、次の文字列が入ります。たとえば、B1などです。

私は検索しましたが、ほとんどの人はそれを逆に(範囲を連結して)やりたいようです。

何かご意見は?

4

1 に答える 1

7

mid関数を使用します。

=MID($A$1,1,1)

2番目の引数は開始位置であるため、これをrow関数やcol関数などに置き換えて、数式を動的にドラッグできます。

すなわち。

=MID($A$1,ROW(),1)

純粋にVBAで実行したい場合は、mid関数もそこにあると思いますので、文字列をループするだけです。

Dim str as String
str = Sheet1.Cells(1,1).Value

for i = 1 to Len(str)
    'output string 1 character at a time in column C
    sheet1.cells(i,3).value = Mid(str,i,1)
next i

* 編集 *

配列からの複数の文字列でこれを実行する場合は、次のようなものを使用できます。

Dim str(1 to 2) as String
str(1) = "This is a test string"
str(2) = "Some more test text"

for j = Lbound(str) to Ubound(str)
    for i = 1 to Len(str(j))
        'output strings 1 character at a time in columns A and B
        sheet1.cells(i,j).value = Mid(str(j),i,1)
    next i
next j
于 2012-12-08T15:35:01.660 に答える