- ベストアンサー
テキスト・データをエクセルの結合セルに貼り付けたい
メモ帳などのテキストデータをエクセルに貼り付ける際,文字列をコピーしたあと,エクセルに「貼り付け」(Ctrl + V)で行なえますが,セルが結合された状態で「貼り付け」(Ctrl + V)を行なうと,エラーメッセージが出てしまい,一度F2キーを押したあとに(Ctrl + V)を行なわないと貼り付けができません。違う方法はありませんでしょうか?何かコマンドがあれば,クイック・アクセス・ツール・バーに登録するなどして簡略化したいと考えているのですが…。
- みんなの回答 (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ユーザーなら誰でも手直しできるような、簡素なコードを挙げました。 (技能的には初級、知識的には中級。程度の内容かな?と思います) 実際にお使いになる場面で不満、不具合、などがみつかった場合は、 折に触れまた質問してみてください。 その際、このスレッドへのリンクを貼っておくと話が早いと思います。 なるべく私も注意してここを見るようにします。 以上です。 #一般機能で同様のことを実現する方法をご存じの方がいらっしゃれば、 私も勉強させて頂きたく存じます。ご回答をよろしくお願いします。
その他の回答 (4)
- mitarashi
- ベストアンサー率59% (574/965)
横から失礼します。マクロをアレンジして戻ってきてみたら、既にマクロでの回答がされておりましたね。折角まとめたので投稿しておきます。やっている事は既出回答と同様です。 商売柄異なるサイズの結合セル間でコピー&ペーストをする事が良くあり、標準機能では面倒くさすぎるので、アドインを作成して、専用のユーザーフォームを介してコピーをしたりしております。 そこから抜き出して来たコードです。クリップボードからテキストを読みこみ、結合セル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
お礼
詳細な情報をありがとうございました。マクロ作成の面でも非常に参考になりました。お時間を取ってくださったことに心から感謝いたします。
- cj_mover
- ベストアンサー率76% (292/381)
ごめんなさい、読み落としていました。>メモ帳などのテキストデータをエクセルに貼り付ける際, Excel上の話と勘違いしてしまった私のミスです。 無駄な検証させてしまってスミマセン。 一応、今回の質問とは元より関係ない説明ですが >「Altキーを押しながら ESU」の「ESU」がよく分かりません。 Altキーを押したまま、eキー、sキー、uキー、を押して Altキーを戻してから、Enterキー というものでした。 ■1、■2、ともに、Jerry_info_svsさんのの問題解決には役立ちません。 大変申し訳ないのですが、代替えとなる方法をすぐに提示できません。 正直、知らないのですが、私なりに力を入れて探ろうとおもいます。 とはいえ、これ以上ご迷惑をおかけしてもいけないので、 他の方から妥当な解決策がもし得られたなら、 私のレスはないものとして先に進んでください。 まずは、お詫びまで。
- cj_mover
- ベストアンサー率76% (292/381)
こんにちは。お邪魔します。 1■旧Ver.のショートカットキーを使ってキーボードから操作する場合 Altキーを押しながら ESU 次に Enterキー ([形式を選択して貼り付け][値と数値の書式]) 2■クイックアクセスツールバーを使う場合 クイックアクセスツールバーを右クリック クイック アクセス ツール バーのユーザー設定 [エクセルのオプション][クイック アクセス ツール バー]のダイアログの [コマンドの選択]で[リボンにないコマンド]を選択する リストの下から約30件目にある[貼り付け先のテーマを使用して】貼り付け] (いずれもExcel2010で仕様確認) こんな感じでどうでしょう?
補足
ご連絡ありがとうございます。 1ですが, 「Altキーを押しながら ESU」の「ESU」がよく分かりません。 「Esc」キーのことでしょうか?もしそうだとすると,こちらではAlt キーを押しながら Esc を押すとプログラムの切り替えになってしまい,エクセル自体操作できなくなってしまいます。 また,[形式を選択して貼り付け]に関しては,元のデータがエクセルからである場合,実行可能ですが,メモ帳などのテキストエディタから貼り付けた場合[値と数値の書式])は選択肢には含まれないように思います。 2ですが, リストの下から約30件目にある[貼り付け先のテーマを使用して】貼り付け] を表示することはできるのですが,これも上の1と同様,元のデータがエクセルからである場合,実行可能ですが,メモ帳などのテキストエディタから貼り付けた場合,実行できないように思います。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
セルが空だったらWクリックした後なら直接できる。 何か入っている場合は、カーソルが適当な位置になる?ようなのでこの調整が必要に? また、数式ウィンドウ?にカーソルを持っていき、カーソル位置、置き換え範囲などを調整すればできる。
補足
ご連絡ありがとうございます。ただ,「Wクリックした後」貼り付け,ですと「F2キーを押したあとに(Ctrl + V)」と同じく2アクションになってしまいますよね?操作を一つで処理できないものかと思っています。
お礼
ありがとうございました。この方法でバッチリうまくいきました!手順の説明も非常に丁寧で分かりやすいものでした。お時間を取ってご指導してくださり心から感謝いたします。