[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAの質問です』(ヒデ)
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = Worksheets("寸法")
Set ws2 = Worksheets("指示書")
If ws.Range("B3:h3").MergeCells = True Then
ws2.Range("f14,g14,h14").UnMerge
ElseIf ws.Range("B3:D3", "E3:H3").MergeCells = True Then
ws2.Range("F14:F15,G14:G15,H14:H15").Merge
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
別シートにてセルを結合したら分解
分解したら結合という事をしたいのですが上手くいきません
自分で書いたコードなので
おかしな点だらけかもしれませんが、
よければ誰か教えてください。
< 使用 Excel:unknown、使用 OS:unknown >
(1) | If ws.Range("B3:h3").MergeCells = True Then | ws2.Range("f14,g14,h14").UnMerge | ElseIf ws.Range("B3:D3", "E3:H3").MergeCells = True Then | ws2.Range("F14:F15,G14:G15,H14:H15").Merge | End If このコードの意図を書いてください。 ElseIf ws.Range("B3:D3", "E3:H3").MergeCells = True の部分についてです。
というのは、 ws.Range("B3:D3", "E3:H3").MergeCells は Range("B3:D3", "E3:H3")がRange("B3:H3")なので、 ws.Range("B3:H3").MergeCells と書くのと同じで、最初の判定と変わりありません。
"B3:D3"が結合され、 かつ"E3:H3"が結合されているなら、 という意図なんですか? (意図は説明されないとわからない。テレパシーは使えないので)
もし、そうなら、 ElseIf ws.Range("B3").MergeArea.Address(False, False) = "B3:D3" _ And ws.Range("E3").MergeArea.Address(False, False) = "E3:H3" Then などとすることになります。
ちなみに、 ws.Range("B3:D3").MergeCells = True AND ws.Range("E3:H3").MergeCells = True では、B3:H3がひとつに結合されている場合にも真になりますので、 注意が必要です。
(2) ws2.Range("F14:F15,G14:G15,H14:H15").Merge は、 ws2.Range("F14:H15").Merge と書くのと何か違いがありますか? 3つに分けて指定する意図は?
(γ) 2021/11/19(金) 06:11
そもそも、そのコードどこに書いているのですか?
「Worksheet_Activate」ですから、なんかのシートがアクティブになったら実行したいのですよね?
(もこな2) 2021/11/19(金) 10:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.