[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの挿入と書式設定』(とし)
前回質問させて頂き、多くの方々のアドバイスをもとに
イベントプロシージャで特定の範囲のセルをクリックすると
セルが挿入されるという下記のコードを作成することが出来ました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myTarget As Range Set myTarget = Application.Intersect(Target, Range("J6:J107")) If myTarget Is Nothing Then Exit Sub Else myTarget.Offset(, 1).Resize(1, 3).Insert Shift:=xlToRight, _ CopyOrigin:=xlFormatFromLeftOrAbove Cancel = True
End If
End Sub
今回はこの表に変更が出てしまいましたのでアドバイスを頂けたらと思います。
今、セルJ6〜J107をWクリックすると、右隣の同じ行の3つのセル(列:KLM)
が挿入されるようになっています。
今回、列:KLMに条件付き書式を設定することになりました。
挿入先のセルの書式に条件付き書式を反映したくないのですが、
このコードのままですと条件付き書式が反映されてしまい困っています。
ClearFormatsメソッドを使うのかなと思うのですが、オブジェクトをどう指定
していいか分かりませんでした。
初心者過ぎて申し訳ありませんが、またアドバイス頂けらと思います。
< 使用 Excel:Excel2016、使用 OS:Windows8 >
前回の質問の時に思ったのですが、挿入する必要があるのかなぁ・・・と。
単にK列より右の範囲をコピーして、3つ右へ「値の貼り付け」(= 転記)して、 KLM列は、値をクリアすればいいんじゃないですか? (半平太) 2016/10/25(火) 21:44
具体的にはこんな風になりますね。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myTarget As Range Dim pos As Long
Set myTarget = Application.Intersect(Target, Range("J6:J107"))
If myTarget Is Nothing Then Exit Sub Else pos = Application.Max(13, Cells(myTarget.Row, Columns.Count).End(xlToLeft).Column)
With Cells(myTarget.Row, "K").Resize(1, pos - 10) '転記元 .Offset(, 3) = .Value .Resize(1, 3).ClearContents End With
Cancel = True End If End Sub
(半平太) 2016/10/25(火) 22:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.