• ベストアンサー

エクセル2007のVBEを使っています。セルのコピー貼り付け(形式を選

エクセル2007のVBEを使っています。セルのコピー貼り付け(形式を選択して貼り付けを含む)はデータのみ可能 にして他はすべて不可能にする簡単な方法はないでしょうか。これを行うと複数の名前を入力する欄の書式が壊れてしまうのです。webでApplication.CutCopyMode = false を使ったものを2件見つけて試してみましたがうまくいきません。よろしくお願いいたします。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>これを行うと複数の名前を入力する欄の書式が壊れてしまうのです。 [データの入力規則]の事でしょうか? その場合、考え方を変えて、コピー後にその入力規則が壊れた時だけ修復すれば良いのではないでしょうか。 入力規則を設定した範囲は限定されているでしょうから、そのほうが効率的だと思います。 以下はB1:B100の入力規則を設定し直す例。 '該当SheetModule Option Explicit Private Sub Worksheet_Change(ByVal Target As Range)   Dim r As Range   Dim x      Set Target = Intersect(Target, Range("B1:B100"))   If Not Target Is Nothing Then     On Error Resume Next     For Each r In Target       x = r.Validation.Type       If Err.Number <> 0 Then         r.Validation.Add Type:=xlValidateList, _                  AlertStyle:=xlValidAlertInformation, _                  Formula1:="=$A$1:$A$3"       End If     Next     On Error GoTo 0     Set Target = Nothing   End If End Sub #書式設定が必要な場合はそれも適宜追加すれば良いです。

kafun-show
質問者

お礼

長いマクロお手数をおかけし、ありがとうございました。 書式は入力規則ほか書式設定ダイアログ等すべてですので、回答頂いたとおり壊れた後に修復する方法でうまくいきました。ありがとうございました。

関連するQ&A