Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3558 / 13646 ツリー ←次へ | 前へ→

【61437】結合されたセルの結合数 HAM 09/5/8(金) 12:50 質問[未読]
【61439】Re:結合されたセルの結合数 Blue 09/5/8(金) 13:07 回答[未読]
【61445】Re:結合されたセルの結合数 HAM 09/5/8(金) 14:47 お礼[未読]

【61437】結合されたセルの結合数
質問  HAM  - 09/5/8(金) 12:50 -

引用なし
パスワード
   1行目から、100行目で
A列に日付
B列に曜日
C列からAX列で30分刻みの時間を表す表を作成しました。

指定した文字(仮:Work)で検索し
検索に引っ掛かったセルを表示し
何列目に存在しているかを
メッセージボックスに表示することは
下記のコードでできました。

MsgBox Cells.Find(What:="work").Column

ただ、問題はここからで
この検索したセルが結合されており
いくつのセルで結合されているか取得し
AY列にその値を記入たく思っています。
BCD列が結合されている場合は3と表示するようにしたいと思っています。
また、仮に一行でBCD、FGH、KLMN列が結合されている場合は
10となるようにしたく思っています。
この結合数は行ごとに取得を考えております。
下記の用になるとは思いますが、思いつきません

  For 行 = 1 To 100
    結合セル先頭列 = Cells.Find(What:="work").Column
    結合セル最終列 = 不明
    結合セル数 = 結合セル最終列 - 結合セル先頭列 'ここも繰り返しなどの処理が必要?
    Cells(行, "AY") = 結合セル数
  Next 行

お手数をお掛け致しますが
御助力お願い致します。

【61439】Re:結合されたセルの結合数
回答  Blue  - 09/5/8(金) 13:07 -

引用なし
パスワード
   結合セルの数はRangeオブジェクトのMergeAreaプロパティを使えばわかります。

結合されているセルの数
Range("A1").MergeArea.Count

結合されている列数
Range("A1").MergeArea.Columns.Count

結合されている行数
Range("A1").MergeArea.Rows.Count

【61445】Re:結合されたセルの結合数
お礼  HAM  - 09/5/8(金) 14:47 -

引用なし
パスワード
   ▼Blue さん:
おかげさまで下記のように
自分に納得いく物が一応の完成をみました。
ありがとうございました。

  Application.ScreenUpdating = False '処理を表示しない
  Columns("AY").ClearContents
  For 行 = 2 To 100
    For 列 = 3 To 50
      If Cells(行, 列) = "Work" Then Cells(行, "AY") = Cells(行, "AY") + Cells(行, 列).MergeArea.Columns.Count
    Next 列
    If Cells(行, "AY") <> "" Then Cells(行, "AY") = "=TIME(," & Cells(行, "AY") & "*30,)"
  Next 行

3558 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free