「エクセル セルに1文字ずつ分解 マクロ」
という検索が行われていました。
セルに「=MID($A1,COLUMN()-1,1)」という数式を入力して、右方向にオートフィルするという方法で、A1セルに入力された文字列が1文字ずつ分解できることをご紹介しています。
「エクセル セルに1文字ずつ分解 マクロ」
という検索キーワードは、同様のことをVBA(Visual Basic for Applications)で行う方法を探している方によるものでしょう。
実際にこのようなマクロを必要とするシーンでは、いろいろな条件があると思いますが、ここではもっともベーシックな形のマクロをご紹介しておきます。
Dim txt As String
txt = ActiveCell.Value
Dim i As Long
For i = 1 To Len(txt)
ActiveCell.Offset(0, i).Value = Mid(txt, i, 1)
Next
End Sub
サンプルマクロの解説
分解したい文字列の入力されているセルを選択しておいて、上記のマクロを実行すると、その右のセルに、1文字ずつ分解された文字列が入力されます。
元の文字列を変数txtに格納しておいて
txt = ActiveCell.Value
その文字列の長さ・文字の数だけFor~Nextループを回して
For i = 1 To Len(txt)
右方向のセルに1文字ずつ入力しています。
ActiveCell.Offset(0, i).Value = Mid(str, i, 1)
「Mid(txt, i, 1)」
というコードは、ワークシート関数の
「MID($A1,COLUMN()-1,1)」
と同じような意味です。
それをオートフィルするかわりに、ループで回しながら
「.Offset(0, i).Value =」
とオフセットして入力しています。
最終更新日時:2022-07-25 17:54
- Newer:再受講でストンと頭に収まった
- Older:今、何を学習しているのか、頭の整理に役立った
Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ