Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9310 / 13644 ツリー ←次へ | 前へ→

【28055】貼り付けは、強制的に形式を「値」のみに... bridgesbook 05/8/27(土) 17:12 質問[未読]
【28058】Re:貼り付けは、強制的に形式を「値」のみ... kobasan 05/8/27(土) 17:39 発言[未読]
【28061】Re:貼り付けは、強制的に形式を「値」の... bridgesbook 05/8/27(土) 18:43 質問[未読]
【28104】Re:貼り付けは、強制的に形式を「値」の... kobasan 05/8/28(日) 21:19 発言[未読]

【28055】貼り付けは、強制的に形式を「値」のみに...
質問  bridgesbook  - 05/8/27(土) 17:12 -

引用なし
パスワード
   検索では探し出せなく、質問させてください。

ActivesheetにVBAに必要な入力欄を設けています。
(変数とか、処理する行を指定するとか)
以下のように色や罫線を使用し、見やすくしております。

入力セルは      無色 罫線で囲う
見出し・説明のセルは 有色 罫線で囲う
空きスペース     有色 罫線無し

その為、シートの保護をしているのですが、
コピー→貼り付けをすると、セル色や罫線が変化してしまいます。
貼り付けをする場合、強制的に、
「形式を選択して貼り付け」→「値」
にしてしまうことは可能でしょうか?

よろしくお願いいたします。


↓これではぜんぜんだめでした。
Private Sub Worksheet_Change(ByVal Target As Range)
 If Application.CutCopyMode <> False Then Application.CutCopyMode = False
End Sub

【28058】Re:貼り付けは、強制的に形式を「値」の...
発言  kobasan  - 05/8/27(土) 17:39 -

引用なし
パスワード
   ▼bridgesbook さん 今日は

>検索では探し出せなく、質問させてください。

形式をしてして貼付をマクロ記録してみてください。
参考までにマクロ記録したものを少し変えたものです。

Sub Macro1()
  Range("A1:B3").Copy 'copy元
  Range("D3").PasteSpecial Paste:=xlValues  '貼り付け先
  Application.CutCopyMode = False
End Sub


>ActivesheetにVBAに必要な入力欄を設けています。
>(変数とか、処理する行を指定するとか)
>以下のように色や罫線を使用し、見やすくしております。
>
>入力セルは      無色 罫線で囲う
>見出し・説明のセルは 有色 罫線で囲う
>空きスペース     有色 罫線無し
>
>その為、シートの保護をしているのですが、
>コピー→貼り付けをすると、セル色や罫線が変化してしまいます。
>貼り付けをする場合、強制的に、
>「形式を選択して貼り付け」→「値」
>にしてしまうことは可能でしょうか?
>
>よろしくお願いいたします。
>
>
>↓これではぜんぜんだめでした。
>Private Sub Worksheet_Change(ByVal Target As Range)
> If Application.CutCopyMode <> False Then Application.CutCopyMode = False
>End Sub

【28061】Re:貼り付けは、強制的に形式を「値」の...
質問  bridgesbook  - 05/8/27(土) 18:43 -

引用なし
パスワード
   kobasanこんにちは。回答ありがとうございます。
質問が言葉足らずでした。申し訳ありません。

入力欄が例えば4行10列程度あり、インプット情報として全ての入力を必要とします。
入力方法は、使用者によってまちまちで、
keyboadから直接数字入力する時もあれば、
または、過去に同設定のファイルがあれば、コピー貼り付けを行うものもいます。
コピー貼り付けを行う基セルの書式が、保護された貼り付け先の書式と違う場合に、強制的に値のみの貼り付けを行いたいです。

その為、
Private Sub Worksheet_Change(ByVal Target As Range)
等を使用し、
VBA側でcopyモードを判定、その際は強制的に値のみのコピー
にしたいと思っています。

【28104】Re:貼り付けは、強制的に形式を「値」の...
発言  kobasan  - 05/8/28(日) 21:19 -

引用なし
パスワード
   ▼bridgesbook さん 今晩は。

>または、過去に同設定のファイルがあれば、コピー貼り付けを行うものもいます。
>コピー貼り付けを行う基セルの書式が、保護された貼り付け先の書式と違う場合に、強制的に値のみの貼り付けを行いたいです。

ということは
強制的に値のみのコピー
でいいということです

Private Sub Worksheet_Change(ByVal Target As Range)
はシートの値が変化してからイベントが発生するので、貼り付けた後は、もうセルが変化した後です。
それをまた元に戻すコードをつくよりも、はじめから、形式を値に指定して貼り付けるのが一番簡単で確実な方法だと思いますが。

9310 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free