![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
こんばんは!
>・・・結合して他セルに表示させたい。
とありますが、どこのセルに表示すれば良いのか判らないので
元データはSheet1にあり、Sheet2に表示するようにしてみました。
(質問ではG列までしかないようですが、もっと列数が増えても対応できるようにするため)
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, j As Long, cnt As Long
Dim myStr As String, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.Clear
With Worksheets("Sheet1")
For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row
For j = 3 To .Cells(1, Columns.Count).End(xlToLeft).Column
If .Cells(i, j) = "○" Then
myStr = myStr & .Cells(1, j) & ","
End If
Next j
If Len(myStr) > 0 Then
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, "A")
wS.Cells(cnt, "B") = Left(myStr, Len(myStr) - 1)
End If
myStr = ""
Next i
wS.Columns.AutoFit
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
ユーザ定義関数での実装はいかがでしょう。
下記のユーザ定義関数(userCONCATENATE)を標準モジュールに張り付けた後、シート上に次の式を入力して、下にコピーしてください。
H3セル =userCONCATENATE($C$1:$G$1,C3:G3)
Function userCONCATENATE(出荷コード範囲 As Range, 丸印範囲 As Range) As Variant
Dim i As Long
userCONCATENATE = ""
For i = 1 To 丸印範囲.Count
If 丸印範囲(i).Value = "○" Then
If userCONCATENATE <> "" Then userCONCATENATE = userCONCATENATE & ","
userCONCATENATE = userCONCATENATE & 出荷コード範囲(i).Value
End If
Next
End Function
お礼が遅くなり申し訳ありません。
ユーザ定義関数の実装、勉強になりました!
userCONCATENATE関数の貼りつけ先セルが
Excelマクロをあまり知らない方に消されないか心配でしたので、また別の機会にユーザ定義関数を実装しようかと思います。ありがとうございます!
No.2
- 回答日時:
私には、ご質問の意味がよく分からない部分があります。
>w001,s332 と結合して他セルに表示させたい。
結合って、セルとセルをくっつけるExcel独特の用語だったと思います。
文字列と文字列をカンマでつなぐことは、単に文字列を合わせただけのように思います。セルとセルは結合しても、文字列は、左側のものしか残りません。それ以外に何か特別な意味があるのでしょうか。
なお、◯がひとつもないものは出力しません。
また、◯には同じしか見えない別の種類のものがありますから、二種類はヒットするようにしました。
出力の場所は、ご自身でお決めください。
'//
Sub OutputLists()
Dim DeliCode As Variant
Dim i As Long, j As Long, k As Long
Dim outList As String
Dim buf As String
Dim Arbuf() As Variant
With ActiveSheet
DeliCode = .Range("C1:G1").Value
DeliCode = Application.Index(DeliCode, 1, 0)
For i = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To 5
'同じ丸でも、種類があります。
If .Cells(i, 2 + j).Value Like "[○◯]*" Then
If Len(buf) = 0 Then
buf = DeliCode(j)
Else
buf = buf & ", " & DeliCode(j)
End If
End If
Next j
If buf <> "" Then
ReDim Preserve Arbuf(1, k)
Arbuf(0, k) = .Cells(i, 1).Value
Arbuf(1, k) = buf
k = k + 1
End If
buf = ""
Next i
End With
With Worksheets("Sheet2") '出力
.Range("A1:B1").Value = Array("商品名", "出荷コード")
With .Range("A2") 'A2から
For i = 0 To k - 1
.Offset(i, 0).Value = Arbuf(0, i)
.Offset(i, 1).Value = Arbuf(1, i)
Next i
End With
End With
End Sub
'//
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) VBAで質問があります 1 2022/10/19 10:32
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Excel(エクセル) エクセル関数のXlookupのフィルハンドル機能(類した機能でも可)を知りたいです。 3 2022/09/20 20:02
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
文字列の結合を空白行まで実行
Visual Basic(VBA)
-
エクセルVBAで、複数セルのデータをひとつのセルに改行してまとめたいのですか・・・
Excel(エクセル)
-
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
-
4
Excel関数 該当する値を複数抽出し、一つのセルにカンマで区切ってまとめる方法
Excel(エクセル)
-
5
複数セルに入力した数字をカンマを入れてつなげる
Excel(エクセル)
-
6
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
7
エクセルについて
Excel(エクセル)
-
8
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで表
-
【マクロ】for next構文について
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
PDFの請求明細をエクセルにしたい
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
エクセルの関数について教えて...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシート、Excelでの数...
-
スプレッドシートで使う数式を...
-
Excelで50個のセルに同じ文字を...
-
[オートフィルタ]で抽出された...
-
エクセルの問題です。絶対値の...
-
エクセル関数を教えてください
-
各ページの1番上の表示について
-
Microsoft Officeの中古は信用...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
Excel 2019 は、SPILL機能があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報