- ベストアンサー
マクロ エクセル 結合セルのカウント
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> 結合されたセルに数字が入っていたらそれの数をカウントし > この12個の結合セルの中に数字が入っている結合セルの数の部数 質問の画像で結合セルに「5」とあるのですが、5部なのか、一カ所なので1部なのかよくわかりませんが 結合セルは結合分の左上のセルに値が入っています。ロットNoの結合セルで左のB:EはB列に右のM:P列にデータが入っています。 Sub Test() Dim num As Long ' B12:B17,M12:M17の数値を合計した分の部数を印刷する num = WorksheetFunction.Sum(Range("B12:B17,M12:M17")) ' B12:B17,M12:M17の数値データの個数分の部数を印刷する num = WorksheetFunction.Count(Range("B12:B17,M12:M17")) Worksheets("Sheet1").PrintOut copies:=num, Preview:=True End Sub
その他の回答 (6)
- chayamati
- ベストアンサー率41% (260/624)
回答№3,4です >結合されたセルに数字が入っていたらそれの数をカウントし、 ★数値のセルの個数の計算です(文字列のセルは対象外) 結合されたセルは1個となります。 結合されたアドレスは左端のアドレスです。念の為
- kkkkkm
- ベストアンサー率66% (1719/2589)
No.5の訂正 右のM:P列にデータが入っています。 ↓ 右のM:P列はM列にデータが入っています。
- chayamati
- ベストアンサー率41% (260/624)
回答№3です セルD18の式を =COUNT(E11:E16,P11:P16) と訂正します
- chayamati
- ベストアンサー率41% (260/624)
- imogasi
- ベストアンサー率27% (4737/17069)
・エクセルVBAで処理することを望んでいるとする。総合的に費やす時間は目視の方が早いと思うが。 ・下記はテストしたデータ例が少数で、十分ではない。ご免。 ・本件は珍しい課題だと思う。WEB記事にも似た課題は探せなかった。見たこともない。 ・セル結合や個所数を出すのは、VBAでは適したもの(メソッド、プロパティ)がない。 ように思うが、本件には、手こずった。 ーーー https://vbabeginner.net/check-number-excluding-duplicates/ VBAで重複を除いた値の個数を調べる を参考に考えた。 Dictionaryは大げさなようで、使わなかった。 ーーー 結合セルのカタマリの場所の数(かつ、値が数)は下記コードを実行してだす。 あとは、印刷を行う時のVBA引数で渡すなりして使うことになろう。 残念ながら、いろいろ考えたがうまく行かず、Sheet2を作業シートとして、使わざるを得なかった。 後半でSubtotal関数の利用も苦心の末の工夫です。 ーー 下記Range("A1:Z100")の部分は、適当に広めに設定のこと。 標準モジュールに Sub test01() k = 2 'Sheet2の第1行目見出し、第2行目から For Each cl In Worksheets("Sheet1").Range("A1:Z100") '適当に広目にセル範囲を設定 If (cl.MergeCells = True) And (cl.Value <> "") And (IsNumeric(cl) = True) Then Worksheets("Sheet2").Cells(k, "A") = cl.MergeArea.Address k = k + 1 End If Next '-- MsgBox "End" 'ーーー Worksheets("Sheet2").Range("A1:A" & k).AdvancedFilter Action:=xlFilterInPlace, Unique:=True n = WorksheetFunction.Subtotal(3, Worksheets("Sheet2").Columns(1)) 'Subtotal関数の3は件数 n = n - 1 '見出し行除きの数 MsgBox n End Sub ---------- この n を印刷時のPrintOutメソッドのCopiesの件数に使ってはどうか。
- yumi-access
- ベストアンサー率21% (36/170)
お礼
kkkkkmさん うまくいきました。 ありがとうございます。 説明足らずに申し訳ありません。数値データの個数分印刷することでした。 ありがとうございました。