• 締切済み

VBAで、貼り付け禁止命令を実現したい(エクセル)

taocatの回答

  • taocat
  • ベストアンサー率61% (191/310)
回答No.6

こんばんは。 NO4の回答のお礼のコードは、コピペだけでなく入力についても いちいち確認することになっていますが、 それって「問題の年配の方」にはいいのかも知れませんが、 普通に入力できる人には非常に煩わしいと思いますが、如何でしょう。 で、上記も勘案して以下のようにしてはどうでしょう。 (1)セルひとつへの入力は、ふつうに入力できるようにする(確認メッセージなし) (2)セルひとつのコピペは、メッセージで確認する (3)複数セルの処理は、入力もコピペも無条件にダメとし、その由メッセージを表示する (4)行の挿入は1行でも複数行でも可能とする どのシートでも上記動作になるようコードは、ThisWorkBookモジュールに。 '--------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)  Dim Ans As Integer  If Target.Count = 1 Then    If Application.CutCopyMode Then      Ans = MsgBox("貼り付けたデータは正しいですか?", vbYesNo, "確認")      If Ans = vbNo Then        MsgBox "正しいデータを貼り付けて下さいな"        With Application         .EnableEvents = False         .Undo         .EnableEvents = True        End With      End If      Application.CutCopyMode = False    End If  End If End Sub '--------------- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)   If Target.Count = 1 Then Exit Sub   If Target.Columns.Count = 256 Then Exit Sub   MsgBox "複数セルはいやよ!", vbCritical, "確認"   Target.Cells(1).Select   Application.CutCopyMode = False End Sub '--------------- 複数セルに対しては上記コードのように、貼り付ける前、又は、入力する前の、セル範囲を選択した時点で判断した方がいいですよね。   先ず、新しいブックで上記コードをお試しください。  

関連するQ&A

  • 貼り付けオプション 個別

    エクセルについて。 データを貼付け後に表示される「貼り付けオプション」ですが、 これをエクセルファイル毎に、かつ、ある列(B)に対してのみ非表示にできないでしょうか? エクセル全体で、「貼り付けオプション」非表示の方法はあるようですが、、、 よろしくお願いいたします。 エクセル2007 VBAでも不可能でしょうか。

  • エクセル VBAについて

    お世話になります エクセルでのVBAのFoamにて編集画面を作成中ですが 画像の挿入(ダイアログボックス)一つ一つの貼り付けは可能ですが複数の画像の貼り付けができません。 それと貼り付けた画像たとえば4枚あるとすると 一枚一枚決まった枠内に自動に大きさなどを変更して貼り付けをしたいのですがいい方法ないですか?

  • Excel VBA メニューバー内の各項目の enable/disable変更

    Excel VBA を用いて Excelのメニューバーの各項目の enable/disable 状態を変更する事は可能でしょうか? (「編集」-「貼り付け」の許可/禁止の切り替えなど) ご存知の方、教えてください。お願いします。

  • excel2007ですべて貼り付けを禁止しコピペは値のみに限定したい。

    excel2007ですべて貼り付けを禁止しコピペは値のみに限定したい。 EXCEL2007で条件付き書式や入力規制を使用して、 シートを作成しなのですが、そのシートを編集するときに シート内でコピペをすると条件付き書式や入力規制まで貼り付けられて しまいます。 これを防ぐために値のみでの貼り付けしかできないように規制したいのですが、 可能でしょうか? VBAを使うような場合でも大丈夫です。 どうぞ、お願いいたします。

  • EXCEL(2003)VBAで配列貼り付け

    EXCEL2003を使用してます VBAでCSVファイルを読み込み セルに書き込む動きを作成しました 当初、FOR~NEXTでまわしてセルに一つ一つ書き込んで ましたが、速度向上の為 配列に格納して貼り付けをしています 例: Dim aryStrings() As String ReDim aryStrings(16) 'デリミタ[,]でデータ分割 aryStrings = Split(rec, ",") .Range(Cells(1, 3), Cells(1, 18)) = aryStrings() EXCEL上では数値として扱いたいのですが CSV読み込み時に文字列として扱うため配列は String型になっております ※セルの書式設定は数値型を設定済 配列貼り付け後確認するともちろんですが文字列として張り付いてます (該当セルで編集+ENTERでEXCELが数値に変換してくれますが) 下記の3つの方法で可能な事はありますか? (1)CSV読み込み時に数値に変換して配列に格納 (2)配列を一気に数値型に変換 (3)文字列配列を数値型に変換しながらEXCELに一気に  配列貼り付け ご存知の方、いらっしゃいましたらアドバイスお願い致します

  • AccessのデータをExcelに貼り付け

    AccessのデータをフィルターしてExcelに貼り付けるには、AccessとExcelのどちらのVBAを使えば良いでしょうか。 前提:Accessに10フィールド100行くらいのデータがあり、Excelに氏名と日付を入力する欄がある。 処理:AccessのデータをExcelに入力した氏名と日付でフィルター(AND検索)→フィルターしたままExcelに貼り付け→そのデータをExcelの関数とVBAで処理(複雑な関数なのでAccessで処理できない)

  • 貼り付けについて

    エクセルで編集したデーターをメールに貼り付けたいのですが、やってみたところ出来ました。が、大き過ぎます。メール画面を最大化しないと見にくいです。それを、小さくするにはエクセル画面の編集データーを小さくしないとダメですか?添付するのが一番良いかと思いますが、仕事上使うので相手が添付ファイルの見方を知らなかったら操作方法をいちいち書かなくてはならず、手間かと思い直接貼り付けをしよーと思いました。

  • Dreamweaverにエクセルのデータを貼り付けできませんか?

    現在dreamweaverにてサイトの編集作業中です。 データを入れ込んだ10列×200行近くのhtmlのテーブルがあるのですが、そのデータをすべて新しいデータに差し替えが必要になりました。 元データはエクセルの表なので一気にデータを貼り付けができれば良いのですが、htmlのテーブルは1行ずつ交互に背景色が付いており、エクセルからデータを貼り付けると背景色が消えてしまうなどうまくいきません。 htmlのテーブルはそのままにしたまま、エクセルのデータを貼り付けることはできないものでしょうか? (エクセルでいう「形式を選択して貼り付け→値」のようなことはできないのでしょうか?) やはり1つ1つ打ち直すしか方法はないのでしょうか? 何か良い方法があればご教示願いたいと思います。

  • エクセルの貼り付けについて

    パーソナル編集長ver.11.01を使用しています。オブジェクトの作成と貼り付けについてです。エクセルの表を貼り付けたいのですが、いつの頃からか、貼り付け後に、エクセルの表で指定している太線や背景色が表示されなくなりました。使用した当初はできていたのですが。。。同じような方、解決された方はいらっしゃいますか? ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 【EXCEL2002】「貼り付け先の書式に合わせる」をVBAで実行したい

    助けてください。 HTMLの表データを貼り付けているのですが、 「1/1」とかって記載されたデータが日付形式に変換されてしまいます。 貼り付けのあとに出てくる「貼り付けオプション」で 「貼り付け先の書式に合わせる」を使えばうまく貼り付けられたのですが、 このコマンドをVBAで実施するにはどうすればいいでしょうか? (貼り付けるデータが大量なため、マウスで選択だときついのです) 「貼り付け先の書式に合わせる」はマウスでの選択のため、 VBAの記録だと、覚えられないのです。 このコマンドがVBAで選択できればすごい楽になるのですが。 ご存知の方教えてください。