プロが教える店舗&オフィスのセキュリティ対策術

Excel 2000 を使ってます。

ボーダーや背景色のあるセルをコピーする時、
値だけを取り出すために 「形式を選択して貼り付け」 から
「値」 を選択してるのですが、「すべて」 の代わりに
「値」 をデフォルトに設定することは可能でしょうか?

また、オプションの設定などで
コピーした時に「値」 だけを
取り出すことは可能ですか?

あるいは VBA を使った場合はどうでしょう??

A 回答 (8件)

こんにちは。



もし、既存のショートカットに設定したいのでしたら、以下のようにすれば、Ctrl + V で、デフォルトで値貼り付けにはなりますね。
もし、選択肢や一般のコピーをする場合は、メニューの編集-形式を選択してコピーや貼り付けになります。

ただし、この場合、以下のコードは、  Application.OnKey "^%v", "CopyValues" のようにして、Ctrl + Alt + V などと、通常にはない組み合わせにするのが一般的です。
(注意:SetKey, SetOffkeyは、同じキーにさせることです)個人用マクロブックに、同様にすれば、Excelを開いたときに、どれでも同じようになります。

それ以外の設定は、やってみたことはないけれど、デフォルト設定は、かなりややこしいものになるような予感がします。簡単に言うと「形式を選択して貼り付け」ダイアログを途中で横取りするわけです。そのためには、そのダイアログ表示の起動になる部分のインスタンスを設け、既存のものと入れ替えするわけです。それは、可能だとは思いますが、結構、高度な方法であり、設定もかなり面倒になります。私はまったく自信がありません。私自身は、デフォルト以外の方法で慣れてしまうと、他のPCで、ストレスを感じてしまうので、常に、デフォルトに近い状態にして使っています。


'----------------------------------------------
'標準モジュールのみ

Sub Auto_Open()
'ブックを開けたら設定
 Call SetKey
End If
Sub SetKey()
'設定用
 Application.OnKey "^V", "CopyValues"
End Sub

Sub CopyValues()
'値貼り付け
 On Error Resume Next
 If TypeName(Selection) = "Range" Then
  ActiveCell.PasteSpecial xlPasteValues
  Application.CutCopyMode = False
 End If
 On Error GoTo 0
End Sub

Sub SetOffkey()
'解除用
 Application.OnKey "^V"
End Sub
Sub Auto_Close()
'ブックを締めたら解除
 Call SetOffKey
End If
    • good
    • 0

hirorin00です。



元締めのgooにココに書き込むのは不適当と判断されるかもしれませんが…

Wendy02様
ご指導ありがとうございます。
私自身、完全な独学+ネット(古くはフォーラム時代から)からの知識でやってきただけなので、偏りがあったモノと自覚することができました。
大変勉強になりました。ありがとうございます。
以前から貴殿の書き込みを大変興味を持って拝見しておりました。
これからもよろしくお願いいたします。

yasu182様
場所をお借りいたしましてごめんなさい。
でも貴殿のお蔭で、私も更に勉強することができました。
ありがとうございました。
    • good
    • 0

hirorin00 様へ


はじめまして、Wendy02と申します。

ちょっと書き込みを遠慮していましたが、#5 を読みまして、納得しました。personal.xls 強化講座は、有名ですが、この方のコードは、無意味な部分や、書き方としておかしな部分があるので、一通りマクロが知っているのかな?っていう印象です。(失礼なことを書いているかもしれませんが……)

一般的に、デフォルトでバージョンが決まっていないと、CommandBars コレクションに、Index では使えません。また、場合によって、それぞれの設定によって、揺れ動くものですので、名前の指定をしないといけません。Sheets(i) というようなもので、一律に行う以外には、Index のループはできないのです。

CommandBarsControl のような名称が数多くある場合は、必要なら、別途、配列変数で格納します。ただ、Version によって、既存の名前が変わるわけではありませんので、Versionによる 統一コードは可能で、バージョンが変わったから、コードを換えるという必要はありません。

それと、他人の環境では、むやみに、CommandBur に対して、Reset メソッドは使ってはいけないのです。以下のように、自分のつけたもの(つけようとしているもの)に対して削除するようにして、二重登録を防ぎます。多くある場合は、自分専用のTag を付けておき、Tag で削除するようにします。

右クリックメニューに登録する場合は、このようにします。

'標準モジュール

Sub Auto_Open
Call RightMenuAdd
End Sub

Sub RightMenuAdd()
'右クリックメニュー追加
 Dim i As Integer
 On Error Resume Next
 With Application.CommandBars("CELL")
  .FindControl(, 370).Delete
  On Error GoTo 0
  i = .FindControl(, 755).Index
  With .Controls.Add _
   (Type:=msoControlButton, ID:=370, Before:=i, Temporary:=True)
   .BeginGroup = False
   .Caption = "値の張り付け"
  End With
 End With
End Sub

'(本来は、With のネストよりも、変数を使ったほうが良いです。)

なお、満足されてお使いになっておられているようでしたら、申し訳ありません。お気を悪くしないようにね。

この回答への補足

もう一度考えてみたところ、
キーボードの F2 または セルをダブルクリックで
編集可能にしてからマウスで選択して反転、
そこから Ctrl + C を使っても 実用的に使える手間で
値を取り出せるかと思いました。

コピーしたいセルが複数の場合は
教えていただいた
「値の貼り付け」 コマンドが役に立ちそうです。

VBA もうまく設置できました。
そのうち改造して自分でも使ってみようと思います。
色々なアドバイスとても勉強になりました。
ありがとうございました!

補足日時:2006/09/25 22:41
    • good
    • 0

ツールバーに「値を貼り付け」コマンドを追加しておけば、コピーのあと貼り付けるセルを選択してコマンドボタンをクリックするだけで済みます。

    • good
    • 0

4番です。



先ほどのVBAは下記のページを参考にして工夫したモノです。
書き忘れておりました。失礼いたしました。

http://www.excel7.com/personal/personal4.htm

ココはとても参考になります。

参考URL:http://www.excel7.com/personal/personal4.htm
    • good
    • 0

はじめまして



以下のVBAをセットしておくと、右クリックしたときに「値の貼り付け」がでます。
重宝しております。


Option Private Module
Sub auto_open()
Add_RightClickMenu 1
End Sub

Sub Add_RightClickMenu(num%)
Dim cstBar As CommandBar
Dim i As Long
Dim j As Long

For j = 23 To 28
Application.CommandBars(j).Reset
Set cstBar = CommandBars(j)
cstBar_sub cstBar
Next
End Sub

Sub cstBar_sub(cstBar As CommandBar)
With cstBar
.Controls.Add Type:=msoControlButton, Before:=6, ID:=370, Temporary:=True
.Controls(6).Caption = "値の張り付け"
' ID:=370 というのが、値の張り付けを表すID。そのIDのマークが表示され、
' そのIDの動作が行われる
' Before:=6と.Controls(6)の「6」を変えると表示される場所を変えられます。
End With

End Sub
    • good
    • 0

コピーや貼り付けのとき、


右クリックを使えば、ストレスが少ないのでは?

コピーした後、
貼り付けたいセルの先頭の位置を選択して
右クリックしたら、「形式を選択して貼り付け」
が出てくるので、自分はいつもこれで済ませています。
    • good
    • 0

値をデフォルトに設定することはできないと思います。



マクロで設定することは可能でしょうが、[ツール]-[ユーザー設定] の「編集」
コマンド一覧から「値の貼り付け」をツールバーに取り込んだほうが簡単では
ないでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!