• 締切済み

Excel2007のマクロで文字列を分解

Excel2007のマクロで文字列を分解したいのですがうまくいきません。 1、セルA1からU1までかそれ以上にデータが3つずつ入ってます。 2、1のデータの1つずつをを3列ずつに分解してA3から列上にコピー。 例えば、セルA1あいう、セルB1えおか→ならA3あ、B3い、C3う、D3え、E3お、F3か という具合に。だれかお願いします。

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

M29:S29範囲、固定になりますが Sub Test3()   Dim c As Range, i As Long, j As Long   For Each c In Range("M29:S29")     For i = 1 To 3       j = j + 1       Cells(3, j).Value = Mid(c.Value, i, 1)     Next   Next End Sub

961awaawa
質問者

お礼

コンパイルエラーが出てFOR EACHに指定する変数はバリアント型またはオブジェクト型でなければなりません、と出ます。

961awaawa
質問者

補足

すみません私がミスしてました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>M29からS29以上に変えたら かつ、上記セルに >データが3つずつ入ってます。 なら Sub Test2()   Dim c As Range, i As Long, j As Long   For Each c In Range("M29", Cells(29, Columns.Count).End(xlToLeft))     For i = 1 To 3       j = j + 1       Cells(3, j).Value = c.Characters(i, 1).Text     Next   Next End Sub

961awaawa
質問者

お礼

1004、charactersクラスのTEXTプロパティを取得できません、とエラーが出ます。もしかしてこのプログラムは回りに何も無い状態(M29からS29の)ではないとダメだったりしますか?

961awaawa
質問者

補足

なんどもすみませんが、1004と出て配列の一部を変更できません、となります。何がいけないのでしょうか。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

A1:C1セルに あいう えおか きくけ と入っているとする。 標準モジュールに Sub test01() Dim str As String Dim i As Long k = 1 For Each cl In Range("A1:C1") str = cl.Value MsgBox Len(str) For i = 1 To Len(str) Cells(3, k) = Mid(str, i, 1) k = k + 1 Next i Next End Sub 実行して A3:I3に あ い う え お か き く け 似たようなWEB記事がある。 ーー http://www.relief.jp/docs/017921.html Mid関数の応用でしかない問題では? 1セル3文字一律でなくても、変更点無し。

961awaawa
質問者

お礼

ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

Sub Test()   Dim c As Range, i As Long, j As Long   For Each c In Range("A1", Cells(1, Columns.Count).End(xlToLeft))     For i = 1 To c.Characters.Count       j = j + 1       Cells(3, j).Value = c.Characters(i, 1).Text     Next   Next End Sub

961awaawa
質問者

お礼

この通りでは動きました。ありがとうございます。 ところがお題のセルを変えるとエラーになってしまいました。 セルA1からU1以上、のところをM29からS29以上に変えたら失敗しました。IN range("A1",……)のところをM29に変えただけなんです。 ご教授お願いします。

関連するQ&A