- 締切済み
エクセルのセルの値を後ろに追加してまとめる方法
ブック内に複数のシートがあります。 複数のシートの体裁は同じで、B4:F9の範囲のデータ(文字列)を 同体裁のシートに改行も含んでセル毎にまとめたいのです。範囲内には、空白も多いです。 シートが3つなら、sheet1!B4&sheet2!B4&sheet3!B4の方法でまとめられると思うのですが、シートの枚数が決まっていません。(改行はできてませんが) 良い方法はないでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- masnoske
- ベストアンサー率35% (67/190)
「空白も多い」とありますが、空白は無視ですか?あるいはセル内で改行ですか?
- HohoPapa
- ベストアンサー率65% (455/693)
HohoPapaです。 #3を補足します。 先ほど提示したコードの場合 課題関数を埋めた後で、 計算対象シートの値が書き換わったり 新たなシートが挿入された場合に再計算されません。 その場合は、関数式を埋めたセルを選び F2キーを押下し、エンターキーを押してください。 それも面倒であれば、 後記コードにしてみてください。 ただし、後記コードの場合 どのセルが書き換わっても再計算するため 性能を大きき落とす可能性があります。 それを理解したうえで使ってください。 Option Explicit Function MyCONCAT(FromSh As String, ToSh As String) As String Dim ShCnt As Long Dim HitFlg As Boolean Dim RowNum As Long Dim ColNum As Long Dim wkText As String RowNum = Application.ThisCell.Row ColNum = Application.ThisCell.Column wkText = "" Application.Volatile '揮発性に。 HitFlg = False For ShCnt = 1 To ThisWorkbook.Sheets.Count If ThisWorkbook.Sheets(ShCnt).Name = FromSh Then HitFlg = True If HitFlg = True Then wkText = wkText & ThisWorkbook.Sheets(ShCnt).Cells(RowNum, ColNum).Value End If If ThisWorkbook.Sheets(ShCnt).Name = ToSh Then HitFlg = False Next ShCnt MyCONCAT = wkText End Function
- HohoPapa
- ベストアンサー率65% (455/693)
VBAを使ってもいいのであれば、 私だったら、後記のコードのように関数を作って対処します。 例の場合は Sheet2のA2セル あ Sheet3のA2セル か Sheet8のA2セル さ<改行>し と埋まっている場合の結果です。 Option Explicit Function MyCONCAT(FromSh As String, ToSh As String) As String Dim ShCnt As Long Dim HitFlg As Boolean Dim RowNum As Long Dim ColNum As Long Dim wkText As String RowNum = Application.ThisCell.Row ColNum = Application.ThisCell.Column wkText = "" HitFlg = False For ShCnt = 1 To ThisWorkbook.Sheets.Count If ThisWorkbook.Sheets(ShCnt).Name = FromSh Then HitFlg = True If HitFlg = True Then wkText = wkText & ThisWorkbook.Sheets(ShCnt).Cells(RowNum, ColNum).Value End If If ThisWorkbook.Sheets(ShCnt).Name = ToSh Then HitFlg = False Next ShCnt MyCONCAT = wkText End Function もし標準モジュールへの貼り方や使い方がよくわからない場合は https://okwave.jp/qa/q9820839.html を参考にしてください。 VBAで関数を作り使うという意味では同じことですから。
- msMike
- ベストアンサー率20% (364/1804)
「複数のシートの B4:F9の範囲のデータ」の姿と、 「別シートに改行も含んでセル毎にまとめた」姿が、 誰にでも容易に觧るサンプルを示して下さい。 言葉での説明はオナカイッパイなので全く不要です。
- imogasi
- ベストアンサー率27% (4737/17069)
VBAをやったことがあれば簡単に出金ます。 For each nextで、各シートも、セル範囲の各セルも簡単にとらえられる。 そして、各シートのセルデータを、&で結合すればよい。 ーー こんなことをやっても集約シートは、見にくくなるだけではないですか? 完成したとして、その後はどんなふうに使うの? その使うときに、私の言う処理(VBAですが)をしたほうが良いのでは。 ーー そういうことを説明しないで、回答者に「俺の言うようになるように、教えろ」 と言っている質問者が多いが、そのように、することそのものが、適している考え(処理)か どうか、識者に聞いてみる方が、大切だと思うよ。 私自身は、質問は素人らしい、案だなという感想で、やる気が出ない。