- ベストアンサー
エクセルで ctrl+d を使ったセルのコピーについて
お知恵を拝借させて下さい。 ctrl+d を使い、真上のセルの内容をコピーする場合に、 文字情報(文字およびフォント・サイズの情報)だけが コピーされるような方法はあるでしょうか? 毎行ごとに色を互い違いにして、行が見えやすいように しているので、セルの色がコピーされるとその処理を 行わないといけないためです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
はじめして。 フォント・サイズは書式となるため、背景色も含まれてしまいます。 文字だけでいいのであれば、 エクセルのマクロ機能を使用すれば、lionno25さんが行いたい事は 可能です。 まず、どこでもいいですがセルを選択した後「Ctrl + C」を押してください。 その後、キーボードの下「↓」ボタンを押してください。 次にマウスで、「ツール」→「マクロ」→「新しいマクロの記録」を選択します。 「Ctrl + C」を押した所が破線で表示されているはずです。 すると、「マクロの記録」画面が表示されます。 恐らくマクロ名は「Macro1」となっていると思います。 その下辺りに、ショートカットキーと書いてある箇所があります。 その欄に、例えば「e」を入力します。 その後に「OK」ボタンを押してください。 で、今選択されているセルがありますよね。 その上で右クリックしてください。 そして「形式を選択して貼り付け」を選択します。 すると、「形式を選択して貼り付け」画面が出ますので、 この中の「値」を選択して、OKボタンを押します。 この後、どこも触らないで、「ツール」→「マクロ」→「記録の終了」 これで、どこかのセルをコピーした後に、「Ctrl + e」で 貼り付け(ペースト)されますが、中身の文字だけがペーストされます。 背景色などの書式は引き継がれません。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんなマクロと違いますか? '標準モジュール Sub SetKey() 'キーのセッティング Application.OnKey "^d", "DownCopy" 'Ctrl + d の設定 End Sub Sub DownCopy() On Error Resume Next With ActiveCell .Cells = .Offset(-1).Value .Cells.Font.Size = .Offset(-1).Font.Size 'サイズのコピー End With On Error GoTo 0 End Sub
お礼
ありがとうございます。 何とか試してみます。
- imogasi
- ベストアンサー率27% (4737/17069)
形式を選択して張り付け、のダイアロウグには、値(質問者が文字といっているもの、文字列の場合と数値の場合がある)、書式(その他に入力規則などもあるが)があります。「値と数値の書式」もあります。「書式」となっていますが、 「書式」には、フォント関係以外にもイロイロありますし、フォントにも、カラーやサイズがあります。 ここの「書式」には、ここでは「条件付書式」も含められるようです。 ーー (値は問題ないが、)ですから、「書式」の中のフォントサイズだけを引き継ぎ、他は引き継がないのは、できないでしょう。 コピーして入った、ClipBoadオブジェクトのFontSizeをつかめれば、VBAを使ってでもできそうな気がするが、 判らない。VBAで可能と言う回答が出ていますが、私にはマクロの記録程度でできるか疑問です。 Clipboad.textしか使ったことが無いのでわからない。 http://www.magictree.com/vbcourse/05menusdialogs/clipbrd.htm http://officetanaka.net/excel/vba/tips/tips20.htm
お礼
回答ありがとうございます。 URL確認してみます。
- -alphard-
- ベストアンサー率100% (1/1)
「RangeクラスのPasteSpecialメソッドが失敗しました」と出るのは コピー元が選択されていない可能性がありますね。 コピー元を「Ctrl + C」にて選択しておく必要があります。
お礼
再度ありがとうございます。 上手く行くこともあるんですが、一度 ファイルを閉じて(保存して)から、 再度開くとダメになってしまうようです。
補足
-alphard-さん、早速の回答ありがとうございます。 試した見たのですが、マクロ登録の時に選択したセルでは 私が希望したいた通りの作業が問題なく上手く行く!の ですが、それ以外のセルに持って行って試してみると、 実行時エラー:1004 RangeクラスのPasteSpecialメソッドが失敗しました という事で、ダメになってしまいます。 上手くマクロの設定ができていないのでしょうか。。。