- ベストアンサー
エクセルで書式のコピー貼り付けができない問題の解決方法
- エクセルで書式のコピー貼り付けを行うと貼り付けられた部分の書式が変更される問題が発生しています。
- ネットで調べていくつかのコードを試しましたが解決できず、ショートカットメニューを使っても貼り付けができない状態になっています。
- ショートカットメニュー内の貼り付けを有効にするための解決方法を教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ショートカットメニュー内の貼り付けはどんなコードを実行すれば有効にして回復させることができるのでしょうか。 他にショートカットメニューをカスタマイズしてなければ、CommandBarごとリセットするのが簡単です。 Sub test() Dim cb As CommandBar For Each cb In Application.CommandBars Select Case cb.Name Case "Cell", "Row", "Column" cb.Reset End Select Next End Sub
その他の回答 (2)
- end-u
- ベストアンサー率79% (496/625)
>このマクロのリセットはどこまでを対象として使えるのでしょうか。 >ショートカットメニューにある全項目、 >またはホーム>クリップボード内にあるコマンドにも有効なのでしょうか。 2007からメニューコマンドのインターフェイスが「リボン」に変わりましたから、 その「リボン」に対してはCommandBar制御のマクロは使えません。 ∴『ホーム>クリップボード内にあるコマンド』には無効です。 従来のCommandBarは下位バージョンとの操作互換の為残っています。 その中で、マウス右クリックでポップアップするメニューは、 そのまま従来のCommandBarが使われています。 このCommandBarに対しては前述のマクロは有効です。 つまり、Type = msoBarTypePopupのCommandBarは、2007でも制御可能です。 以下はそのCommandBarsを列挙するサンプルです。 Sub test() Dim cb As CommandBar Dim i As Long Dim v(1 To 70, 1 To 3) v(1, 1) = "index" v(1, 2) = "name" v(1, 3) = "namelocal" i = 1 For Each cb In Application.CommandBars With cb If .Type = msoBarTypePopup Then i = i + 1 v(i, 1) = .Index v(i, 2) = .Name v(i, 3) = .NameLocal End If End With Next Sheets.Add.Range("A1:C1").Resize(i).Value = v End Sub 『セル』を選択して右クリックでポップアップするメニューはCommandBars("Cell")です。 同様に『列』選択時はCommandBars("Column")。 『行』選択時はCommandBars("Row")。 それぞれ2個ずつあるのは「標準」ウィンドウ用と「改ページプレビュー」用です。 ご質問の状況「シート上でショートカットメニュー...貼り付けのアイコンと文字だけが薄く」... から、この"Cell"、"Column"、"Row"に対してリセットかければ良いかな、と判断しました。
お礼
事務局に連絡を取り追加回答までして頂き、お手数をおかけして申し訳ございませんでした。 回答をみて試した後うまくいったので気持ちがどこかに飛んで行ってしまい、すぐにお礼を書きホッとしていました。お礼の欄に再質問を書く自分が恥ずかしいです。 右クリックメニューに対して有効ということが分かり、又不具合があったら使わせていただこうと大切に保存しておきます。大変ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
標準モジュールに Sub test01() MsgBox Application.CommandBars("edit").Controls(4).Caption Application.CommandBars("edit").Controls(4).Enabled = False End Sub を実行したような状態になっているのかな。編集メニューのコピーがうすい文字にグレイアウトする。 それなら・・・.Enabled = Falseの部分を・・・.Enabled = True にして実行してみては。 回答がなかなか付いてないが、もっと難しい問題かもしれないが。
お礼
お忙しいところ早々に回答をいただきありがとうございました。回答表示の上から順にと思いend_Uさんのを試してみたら直ってしまい、前の不具合の状態にする方法もわからないため、imogasiさんのを試す方法が無くなってしまいました。申し訳ありません。本当にありがとうございました。又の質問の際はよろしくお願いいたします。
お礼
質問以来所用で今帰宅し、早々に回答を見たら2件ありました。まず上に表示されていたend_Uさんのからと思い試してみたらヤッター!という感じです。一発で回復しました。最初はオフィス関係のソフトのカテゴリーに質問しようかと思いましたが少し調べたらマウスが壊れているはずという過去回答をみて自分のは壊れていないのは確かであったので、プログラム的なものと思いこちらのカテゴリーに尋ねました。非常に助かりました。ありがとうございます。今後の参考のためよろしければお伺いしたいのですが、このマクロのリセットはどこまでを対象として使えるのでしょうか。ショートカットメニューにある全項目、またはホーム>クリップボード内にあるコマンドにも有効なのでしょうか。