![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
いつもお世話になってます。
また困っています。Excel2013VBAで下記コードを実行するとだいたいいいのですが、場合によっては思っている位置と違う所を選択しています。
C4:C5が結合セルで、以下C6:C7,・・・C18:C19と2つの結合セルが続いています。
その結合セルに○か×が入力されていて、○の時にOffset(85, -1)の位置を選択するようにしたいと思っています。セルでいうと、B89~B104までで、こちらも同じようにB89:B90が結合されており、同じく・・・B103:B104まで2つずつ結合されています。オフセットの範囲内では以上の場所以外は結合セルはありません。
下記コードを実行すると、だいたいは思い通りに取得できるのですが、例えばC4:C5が○、次が×、その次はまた○と交互に入れた時、選択されるセルはB89:B92,B95:B96,B99:B100というように一つ飛ばしにならず、ずれてしまいます。
おそらく、結合セルがあるためにずれているのが条件によってうまくいったように見える時があるんだろうと思いますが、どのように修正すれば正確に取得できるでしょうか?
Sub TEST()
Dim c As Range, Target As Range, r As Range
For Each c In Range("C4:C19")
If c.Value = "○" Then
If Target Is Nothing Then
Set Target = c.MergeArea
Else
Set Target = Union(Target, c)
End If
End If
Next c
If Not Target Is Nothing Then Target.Offset(85, -1).Select
End Sub
No.1ベストアンサー
- 回答日時:
For Each c In Range("C4:C19")
If c.value = "○" Then
If Target Is Nothing Then
Set Target = c.MergeArea.Offset(85, -1)
Else
Set Target = Union(Target, c.MergeArea.Offset(85, -1))
End If
End If
Next c
If Not Target Is Nothing Then Target.Select
こんにちは。
やってみました。何パターンかで試しましたが、前と違って思い通りの位置が取得できているようです。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
Excel countif関数で取り消し線...
-
セル内の一部の文字だけをハイ...
-
Excelで表を作ったところに文字...
-
セルは大きくさせず、中の文字...
-
マウスポインターが白十字のまま
-
エクセルの白黒の反転で困って...
-
エクセルで1つのセルにスクロ...
-
エクセルファイルに _x000D_ と...
-
エクセルでセルを上下に結合し...
-
エクセルで画像を透過させて画...
-
マクロでセルの右から2番目の...
-
エクセルのIF関数で、文字が...
-
JIS水準漢字の選別方法教えてく...
-
エクセルのふりがなの位置
-
エクセル 折り返して全体を表...
-
Excel 隣のセルに文字を表示さ...
-
Excel入力で勝手にエンター押さ...
-
Excelでcsvやtxtで保存する時に...
-
エクセルの2つのセルを内容も消...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
セル内の一部の文字だけをハイ...
-
Excel countif関数で取り消し線...
-
エクセルで1つのセルにスクロ...
-
セルは大きくさせず、中の文字...
-
エクセルファイルに _x000D_ と...
-
Excelでcsvやtxtで保存する時に...
-
Excel入力で勝手にエンター押さ...
-
マウスポインターが白十字のまま
-
エクセルで画像を透過させて画...
-
エクセルの白黒の反転で困って...
-
エクセル2013で英単語を折り返...
-
セルを結合しても、文字をセル...
-
エクセルで右隣のセルより優先...
-
エクセルの入力規則プルダウン...
-
全セルの末尾に改行(Alt+Enter...
-
VBA:結合されたセルに対する「...
-
エクセルのセル外改行は可能で...
-
エクセルでセルを上下に結合し...
-
Excelで表を作ったところに文字...
おすすめ情報