Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

文字列を分解して1文字ずつセルに入力するExcelマクロ

対象:Excel2003, Excel2007, Excel2010

「エクセル セルに1文字ずつ分解 マクロ」
という検索が行われていました。

セルに「=MID($A1,COLUMN()-1,1)」という数式を入力して、右方向にオートフィルするという方法で、A1セルに入力された文字列が1文字ずつ分解できることをご紹介しています。

「エクセル セルに1文字ずつ分解 マクロ」
という検索キーワードは、同様のことをVBA(Visual Basic for Applications)で行う方法を探している方によるものでしょう。

[スポンサードリンク]

実際にこのようなマクロを必要とするシーンでは、いろいろな条件があると思いますが、ここではもっともベーシックな形のマクロをご紹介しておきます。


Sub セルに入力された文字列を一文字ずつ横方向に分解する()

 Dim str As String
 Dim i As Long

 With ActiveCell
  str = .Value
  For i = 1 To Len(str)
   .Offset(0, i).Value = Mid(str, i, 1)
  Next i
 End With

End Sub

サンプルマクロの解説

分解したい文字列の入力されているセルを選択しておいて、上記のマクロを実行すると、その右のセルに、1文字ずつ分解された文字列が入力されます。

元の文字列を変数に格納して
 With ActiveCell
  str = .Value

その文字列の長さ・文字の数だけループを回して
  For i = 1 To Len(str)

右方向のセルに1文字ずつ入力していきます。
   .Offset(0, i).Value = Mid(str, i, 1)

「Mid(str, i, 1)」
という数式は、ワークシート関数の
「MID($A1,COLUMN()-1,1)」
と同じような意味です。

それをオートフィルするかわりに、ループで回しながら
「.Offset(0, i).Value =」
とオフセットして入力しています。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

TrackBack:0

TrackBack URL

Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

「Offsetプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.