• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba 結合されたセルの列番号を取得したい)

VBAで結合されたセルの列番号を取得する方法

このQ&Aのポイント
  • VBAを使用して、結合されたセルの列番号を取得する方法を知りたいです。
  • セルを結合しているセルに入力された値を検索して、そのセルの列番号を取得したいです。
  • しかし、実行時エラーが発生してしまい、結果が得られません。結合されたセルでもセルを検索する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

今まで結合セルと設けたシートで検索を使ってきて問題がなかったのですが、お示しの例でやってみると確かにエラーになり、悩んでしまいました。 結論としては、結合セルの先頭セル以外のセルを起点に検索をかけようとすると、エラーになる様です。 当方の用いているワークシートでは先頭セルは結合してありませんので、問題なかったのですね。ご参考まで。 Sub test() 'a1:a2結合 Dim c As Range 'afterを指定しないと、expression(Cellsなので、A1セル)の左上セルを指定したことになる Set c = Cells.Find(what:="a", lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test1 みつかりません" Set c = Cells.Find(what:="a", after:=Range("A1"), lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test2 みつかりません" Set c = Cells.Find(what:="a", after:=Range("A2"), lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test3 みつかりません" End Sub '結果 'Test1 みつかりません 'test2 みつかりません Sub test2() 'a2:a3結合 Dim c As Range Set c = Cells.Find(what:="a", lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test1 みつかりません" Set c = Cells.Find(what:="a", after:=Range("A1"), lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test2 みつかりません" Set c = Cells.Find(what:="a", after:=Range("A2"), lookat:=xlWhole) If c Is Nothing Then Debug.Print "Test3 みつかりません" End Sub '結果 'Test3 みつかりません

XDSVXOKWNUUA
質問者

お礼

回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#2です。推敲不足で申し訳ありません。下記が正しいです。 'afterを指定しないと、expressionの左上セル(ここでは対象がCellsなので、A1セル)を指定したことになる

XDSVXOKWNUUA
質問者

お礼

回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • NURU_osan
  • ベストアンサー率50% (297/593)
回答No.1

A1とA2を結合して"A"と入力しても、"A"が入力されているのはA1のみでA2は空欄のままです。ただ、表示上結合されているだけです。 自宅PCにExcelがインストールされていないので確認してませんが Sub test Dim SRange As Range Set SRange = Cells.Find(What:="a",LookAt:=xlWhole) MsgBox SRange.Column End Sub で、出ませんか?

XDSVXOKWNUUA
質問者

お礼

回答ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A