Excel VBA質問箱 IV

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

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


46534 / 76732 ←次へ | 前へ→

【35168】Re:対象の値をひとつのセルにまとめる
発言  ichinose  - 06/2/22(水) 20:02 -

引用なし
パスワード
   ▼はじめ さん:
こんばんは。

> Y    Z     AA
>1 30    5    
>2 37    3    
>3 42    1    n
>4 45    2    
>5 48    2    p
>6 51    4    l
>7 55    2    
>8 60    5    o
>9 61    6    p
>
>このような表のAA列の値を使ってひとつのセルに
>入力を行いたいと思います。
>この場合、Range("E1")に『l+n+o+p+p』と入力されるコードを書きたいと
>思います。
>表の行数はブックによって違いますがY-AAにデータが入力されているのは
>共通しています。
>AAの値はアルファベットの小文字に限定されています。
>それらの値をアルファベット順に間に『+』を入れながら
>ひとつのセルに入力していきます。
>
>どうぞよろしくお願い致します
'===================================
Sub test()
  Dim rng As Range
  Dim ans As Range
  Dim crng As Range
  Dim ccnt As Long
  Dim idx As Long
  On Error Resume Next
  Set rng = Range("aa1", Cells(Rows.Count, 27).End(xlUp))
  If rng.Count > 1 Then
    With rng
     Set ans = .SpecialCells(xlCellTypeConstants)
     If Err.Number = 0 Then
       ReDim myarray(1 To ans.Count)
       ccnt = 0
       For Each crng In ans
        myarray(ccnt + 1) = Asc(crng.Value)
        ccnt = ccnt + 1
        Next
       ReDim larray(1 To ccnt)
       For idx = 1 To ccnt
        larray(idx) = Application.Small(myarray(), idx)
        larray(idx) = Chr(larray(idx))
        Next
       Range("e1").Value = Join(larray(), "+")
       End If
     End With
  Else
    Range("e1").Value = rng.Value
    End If
End Sub


Excelならでは(?)のソートを使いました。
2 hits

【35167】対象の値をひとつのセルにまとめる はじめ 06/2/22(水) 19:18 質問
【35168】Re:対象の値をひとつのセルにまとめる ichinose 06/2/22(水) 20:02 発言
【35179】Re:対象の値をひとつのセルにまとめる はじめ 06/2/23(木) 11:03 質問
【35180】Re:対象の値をひとつのセルにまとめる ponpon 06/2/23(木) 11:58 発言
【35184】Re:対象の値をひとつのセルにまとめる はじめ 06/2/23(木) 13:30 お礼

46534 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free