Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13646 / 13646 ツリー ←次へ

【4462】文字をばらす方法 かず 03/3/21(金) 1:08 質問
【4464】Re:文字をばらす方法 Kein 03/3/21(金) 3:02 回答
【4465】Re:文字をばらす方法 Kein 03/3/21(金) 3:03 発言
【4468】Re:文字をばらす方法 ポンタ 03/3/21(金) 3:51 回答

【4462】文字をばらす方法
質問  かず E-MAIL  - 03/3/21(金) 1:08 -

引用なし
パスワード
   今A1のセルに10文字以内の全角の文字列が入っています。
この文字列をボタンを押した時にばらしてそれぞれ先頭文字から一つづつ
セルに格納していきたいのですが可能でしょうか?

(例)
A1のセルに”はじまして”の文字列が入っている
あるボタンを押した時にこれをばらして
A2のセルには "は"
B2のセルには "じ"
C2のセルには "め"
D2のセルには "ま"
E2のセルには "し"
F2のセルには "て"

と入れたいのですが、やり方ご存知の方教えて頂けないでしょうか?よろしくお
願い致します

【4464】Re:文字をばらす方法
回答  Kein  - 03/3/21(金) 3:02 -

引用なし
パスワード
   2つ作ってました。

Sub Test_Parse()
  Dim i As Integer
  Dim Buf As String

  On Error GoTo ErLine
  With ActiveCell
   For i = 1 To Len(.Value)
     Buf = Buf & "[" & .Characters(i, 1).Text & "]"
   Next i
   .Parse Buf
  End With
ErLine:
End Sub

Sub Test_Split()
  Dim i As Integer
  Dim Buf As String
  Dim StAry As Variant

  On Error GoTo ErLine
  With ActiveCell
   For i = 1 To Len(.Value)
     Buf = Buf & .Characters(i, 1).Text & ","
   Next i
   StAry = Split(Buf, ",")
   .Resize(, Len(.Value)) = StAry
  End With
ErLine:
End Sub

Split関数を使うコードは、Excel2000以降でないとエラーに
なると思います。その場合 Dim StAry As Variant を削除して

>StAry = Split(Buf, ",")
>.Resize(, Len(.Value)) = StAry

.TextToColumns DataType:=xlDelimited, Comma:=True

と変更すれば、Excel5.0以降の全バージョンで使えます。

【4465】Re:文字をばらす方法
発言  Kein  - 03/3/21(金) 3:03 -

引用なし
パスワード
   あら。(^^;
>2つ作ってました

2つ作ってみました

【4468】Re:文字をばらす方法
回答  ポンタ  - 03/3/21(金) 3:51 -

引用なし
パスワード
   これでも動きます。
(シンプルで分かりやすい!?、と思います)

標準モジュールに貼り付け、
"はじまして"と入力されてるセルを
アクティブしてお試しください。

Sub test()
  Dim MyStr As String
  Dim i As Integer
  MyStr = ActiveCell.Value
  ActiveCell.Offset(1, 0).Activate
  For i = 1 To Len(MyStr)
    ActiveCell.Value = Mid(MyStr, i, 1)
    ActiveCell.Offset(0, 1).Activate
  Next
End Sub

13646 / 13646 ツリー ←次へ
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free