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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
文字列の結合を空白行まで実行
Visual Basic(VBA)
-
エクセルVBAで、複数セルのデータをひとつのセルに改行してまとめたいのですか・・・
Excel(エクセル)
-
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
-
4
複数セルに入力した数字をカンマを入れてつなげる
Excel(エクセル)
-
5
Excel関数 該当する値を複数抽出し、一つのセルにカンマで区切ってまとめる方法
Excel(エクセル)
-
6
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
エクセルの数式で教えてください。
-
エクセルで指定した日付、店舗...
-
Excel:一部のフォントでセルの...
-
Excel初心者です。 詳しい方、...
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
スマートな関数を教えて下さい。
-
Excelのグラフ軸について
-
EXACT関数とIF関数の組み合わせ...
-
Excel ウインドウ枠の固定をす...
-
エクセルで日付の入ったセルの...
-
excelの不要な行の削除ができな...
-
INDIRECTを使わず excelで複数...
-
各ページの1番上の表示について
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
関数を教えて下さい。
-
Excelのif関数で文字が見えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報