プロが教えるわが家の防犯対策術!

メモ帳などのテキストデータをエクセルに貼り付ける際,文字列をコピーしたあと,エクセルに「貼り付け」(Ctrl + V)で行なえますが,セルが結合された状態で「貼り付け」(Ctrl + V)を行なうと,エラーメッセージが出てしまい,一度F2キーを押したあとに(Ctrl + V)を行なわないと貼り付けができません。違う方法はありませんでしょうか?何かコマンドがあれば,クイック・アクセス・ツール・バーに登録するなどして簡略化したいと考えているのですが…。

A 回答 (5件)

遅くなってスミマセン。

ようやく時間が取れました。
恥ずかしすぎて逃走したくなるほどのミスの後ですが、再度レスしてみます。

とりあえず、VBAによる解決しか私には思い付きませんでした。
まだ私が見つけられていない機能があるのかも知れませんが、
そのような機能が用意されていないという前提なら、方法はこれしか無いように思います。

一度の操作で、という条件のようですので、
ショートカットキー、Ctrl + Shift + v で動作するようにマクロを組んでみました。
(ショートカットキーはExcelが未使用のキーであれば他のものに変更可能です。)

個人用マクロ ブック(PERSONAL.XLSB)に
ショートカットキー付マクロを登録して
Excel共通で使えるようにします。

個人用マクロ ブック を使う方法は、あまり馴染みがない人もいると思いますが、
この手のマクロを仕込む方法としては十分に一般的な方法ですし、
一度、登録すれば日常的に作業の効率化を実現できるものです。
また、二度と元に戻せない類のものは何処にもありませんので、
(もし、それでも、不安が残るようでしたら、スルーして頂いて結構です)
まず、試してみていただければと思います。

以下、手順。
最初に新規のブックを開いておいてください。

手順■1 リボンに[開発]タブを追加登録します。(手順が済んだら削除して構いません)
リボンを右クリック
 [リボンのユーザー設定]
  [リボンのユーザー設定][メインタブ]のリストの中にある[開発]にチェック
  [OK]

手順■2 個人用マクロブックに新規マクロをショートカットキー付きで登録します。
[開発]リボンを選び、[コード]の中にある、、、
 [マクロの記録]をクリック
  表示された[マクロの記録]ダイアログの
   [マクロ名]はそのままでもよいですし何でもよいのですが、仮に myPasteTextExt としておいてください
   [ショートカットキー]に Shift + v (必ず半角で)を入力すると、Ctrl+Shift+[V]という表示になります
   [マクロの保存先]を[個人用マクロ ブック]に変更して
   [OK]

   そのまま
   セルC3を選択(仮に登録する為のダミー処理です)してから
   先ほどの[マクロの記録]ボタンの位置にある[記録終了]ボタンをクリックして
   マクロの記録を終了します

手順■3 個人用マクロブックに登録したマクロのコードを置換します。
同じく[開発]リボン[コード]の中にある
 [マクロ]をクリック
 表示された[マクロ]ダイアログのコンボボックスで"PERSONAL.XLSB!myPasteTextExt"が選択されている状態で
 [ステップ イン]をクリック
  表示された "Microsoft Visua lBasic for Applications ………"ウィンドウで
   Sub myPasteTextExt() という部分が黄色くハイライトされているのを確認したら
   そのまま Ctrl + Shift + F8 キーを押して実行中のプログラムを抜けます
   Sub myPasteTextExt() から始まる一連の記述の、最後から2行目にある
   Range("C3").Select という部分を消去して
   代わりに以下のコード(コメント付)をコピー貼り付けします
' ' =========================この下から===========================

  If TypeName(Selection) <> "Range" Then Exit Sub
  With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 'New DataObject
    .GetFromClipboard
    Selection.Value = .GetText
  End With

' ' メモ帳などのテキストデータから文字列をコピーしたあとで実行します
' ' エクセルのセル(結合セル)に(Ctrl + Shift + V)でテキスト貼り付けを可能にします

' ' =========================この上まで===========================
   コードの置き換えが終わったら、Alt + F11 でExcelに戻ります。

■以上で準備完了です。■

手順■4 実際にテキストデータをコピーし結合セルに貼り付ける、動作確認。
ご自在に。
 今回登録したテキストの特殊貼り付けのショートカットキーは、
 Ctrl + Shift + v です。

手順■5 個人用マクロブック に保存。
Excelを終了する際に(開いているブックに未保存データがあればブック保存確認の後に)
 個人用マクロ ブックの変更を保存しますか?
 と聞いてきますので[保存]を選択して[OK]します。

■以上でマクロの登録完了です。■
以後、Excelを開く度に、ショートカットキーで機能を呼び出せます。

■手順説明は以上です■(もし、うまくいかなかったら相談してください)

メンテナンスについて◆
VBAユーザーなら誰でも手直しできるような、簡素なコードを挙げました。
(技能的には初級、知識的には中級。程度の内容かな?と思います)
実際にお使いになる場面で不満、不具合、などがみつかった場合は、
折に触れまた質問してみてください。
その際、このスレッドへのリンクを貼っておくと話が早いと思います。
なるべく私も注意してここを見るようにします。

以上です。

#一般機能で同様のことを実現する方法をご存じの方がいらっしゃれば、
私も勉強させて頂きたく存じます。ご回答をよろしくお願いします。
    • good
    • 0
この回答へのお礼

ありがとうございました。この方法でバッチリうまくいきました!手順の説明も非常に丁寧で分かりやすいものでした。お時間を取ってご指導してくださり心から感謝いたします。

お礼日時:2012/09/08 06:54

横から失礼します。

マクロをアレンジして戻ってきてみたら、既にマクロでの回答がされておりましたね。折角まとめたので投稿しておきます。やっている事は既出回答と同様です。

商売柄異なるサイズの結合セル間でコピー&ペーストをする事が良くあり、標準機能では面倒くさすぎるので、アドインを作成して、専用のユーザーフォームを介してコピーをしたりしております。
そこから抜き出して来たコードです。クリップボードからテキストを読みこみ、結合セル1個または、単独セル1個に貼り付けます。

xl2010は未だ使いこなしていないのですが、クイックアクセスツールバーにマクロを登録する方法は参考URLをご覧下さい。
http://hamachan.info/win7/Excel/macro.html

Sub test()
'Microsoft Forms 2.0 Object Libraryに参照設定要
Dim myRange As Range
Dim CB As New DataObject
Dim buf As String

On Error GoTo errHandle
If TypeName(Selection) <> "Range" Then Exit Sub
Set myRange = Selection
With CB
.GetFromClipboard
buf = .GetText
End With

If myRange.MergeCells = True Then
myRange.Cells(1).Value = buf
Else
If myRange.Cells.Count > 1 Then
MsgBox "単独セルを選択してください", vbCritical
Exit Sub
End If
myRange.Value = buf
End If
Exit Sub
errHandle:
Select Case Err.Number
Case -2147221404
MsgBox "クリップボードからの取得に失敗しました"
Case Else
MsgBox Err.Number & Err.Description
End Select
End Sub

Microsoft Forms 2.0 Object Libraryに参照設定の解説
http://www.relief.jp/itnote/archives/017881.php
    • good
    • 1
この回答へのお礼

詳細な情報をありがとうございました。マクロ作成の面でも非常に参考になりました。お時間を取ってくださったことに心から感謝いたします。

お礼日時:2012/09/08 06:56

ごめんなさい、読み落としていました。

>メモ帳などのテキストデータをエクセルに貼り付ける際,
Excel上の話と勘違いしてしまった私のミスです。
無駄な検証させてしまってスミマセン。

一応、今回の質問とは元より関係ない説明ですが
>「Altキーを押しながら ESU」の「ESU」がよく分かりません。
 Altキーを押したまま、eキー、sキー、uキー、を押して
 Altキーを戻してから、Enterキー
というものでした。

■1、■2、ともに、Jerry_info_svsさんのの問題解決には役立ちません。
大変申し訳ないのですが、代替えとなる方法をすぐに提示できません。
正直、知らないのですが、私なりに力を入れて探ろうとおもいます。
とはいえ、これ以上ご迷惑をおかけしてもいけないので、
他の方から妥当な解決策がもし得られたなら、
私のレスはないものとして先に進んでください。
まずは、お詫びまで。
    • good
    • 0

こんにちは。

お邪魔します。

1■旧Ver.のショートカットキーを使ってキーボードから操作する場合
Altキーを押しながら ESU 次に Enterキー
([形式を選択して貼り付け][値と数値の書式])

2■クイックアクセスツールバーを使う場合
クイックアクセスツールバーを右クリック
クイック アクセス ツール バーのユーザー設定
 [エクセルのオプション][クイック アクセス ツール バー]のダイアログの
 [コマンドの選択]で[リボンにないコマンド]を選択する
 リストの下から約30件目にある[貼り付け先のテーマを使用して】貼り付け]

(いずれもExcel2010で仕様確認)

こんな感じでどうでしょう?

この回答への補足

ご連絡ありがとうございます。

1ですが,

「Altキーを押しながら ESU」の「ESU」がよく分かりません。
「Esc」キーのことでしょうか?もしそうだとすると,こちらではAlt キーを押しながら Esc を押すとプログラムの切り替えになってしまい,エクセル自体操作できなくなってしまいます。

また,[形式を選択して貼り付け]に関しては,元のデータがエクセルからである場合,実行可能ですが,メモ帳などのテキストエディタから貼り付けた場合[値と数値の書式])は選択肢には含まれないように思います。

2ですが,

リストの下から約30件目にある[貼り付け先のテーマを使用して】貼り付け]

を表示することはできるのですが,これも上の1と同様,元のデータがエクセルからである場合,実行可能ですが,メモ帳などのテキストエディタから貼り付けた場合,実行できないように思います。

補足日時:2012/09/07 15:27
    • good
    • 0

セルが空だったらWクリックした後なら直接できる。


何か入っている場合は、カーソルが適当な位置になる?ようなのでこの調整が必要に?
また、数式ウィンドウ?にカーソルを持っていき、カーソル位置、置き換え範囲などを調整すればできる。

この回答への補足

ご連絡ありがとうございます。ただ,「Wクリックした後」貼り付け,ですと「F2キーを押したあとに(Ctrl + V)」と同じく2アクションになってしまいますよね?操作を一つで処理できないものかと思っています。

補足日時:2012/09/07 15:19
    • good
    • 0

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