- ベストアンサー
VBAで結合したセルの番号を出力する関数を作成したい
- VBAを使って、結合したセルの番号を出力する関数を作成したいです。
- 呼び元でこの関数を呼び出し、B列に結合したセルの番号を出力します。
- 他の処理と組み合わせて使用し、結合したセルの番号を振ることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >呼び元は他の処理も行っていて、機能追加の意味で別関数を用意したいです。 なぜ、そんなに難しく考えなくてはならないのか、私には良く分かりません。 一応、ユーザー定義関数を作ってみました。た。 '原則的に、標準モジュール用 '------------------------------------------- Sub 呼び元() Dim i As Long For i = 1 To 6 Call 結合番号出力(Cells(i, 1), i) Next End Sub Function 結合番号出力(rng As Range, ByRef i As Long) Dim j As Long With rng For j = 1 To .MergeArea.Count .Cells(j, 1).Offset(, 1).Value = j Next j End With i = i + j - 2 End Function '========================================= '私なら、このように考えます。 Sub Test1() Dim i As Long Dim j As Long j = 1 For i = 1 To 6 If Cells(i, 1).MergeArea.Count > 1 Then Cells(i, 2).Value = j j = j + 1 Else j = 1 Cells(i, 2).Value = 1 End If Next i End Sub
その他の回答 (1)
- hige_082
- ベストアンサー率50% (379/747)
こんな感じ? Sub test() Dim i, j j = 1 For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1).MergeCells Then Cells(i, 2).Value = j j = j + 1 Else Cells(i, 2).Value = 1 j = 1 End If Next i End Sub 以上参考まで
お礼
ご回答ありがとうございました。とても参考になり、やりたいことができました。
お礼
ご回答ありがとうございました。 教えて頂いたコードを参考にして、やりたいことができました。 大変助かりました。 ありがとうございました。 ------ 説明不足のところがありました。 実際やりたかったことを今後の参考にメモしておきます。 呼び元は1行ごとに複数関数を呼んでいて、結合番号出力も 1行ごとに処理します。(うまくお伝えできそうにないので 作ったコードをメモします。 Sub 呼び元() Dim i As Long Dim j As Long j = 1 For i = 1 To 6 '←行カウンタ ' Call 処理1 Call 結合番号出力(i, j) ' Call 処理2 Next End Sub Sub 結合番号出力(i, j) With Cells(i, 1) If .MergeArea.Count > 1 Then .Offset(, 1).Value = j j = j + 1 Else j = 1 .Offset(, 1).Value = j End If If .MergeArea.Count < j Then j = 1 End If End With End Sub