Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3924 / 13644 ツリー ←次へ | 前へ→

【59438】セルをメモ帳にコピペすると違う表示になる いのっち 08/12/11(木) 11:07 質問[未読]
【59440】Re:セルをメモ帳にコピペすると違う表示に... Jaka 08/12/11(木) 13:14 発言[未読]
【59443】Re:セルをメモ帳にコピペすると違う表示に... いのっち 08/12/11(木) 14:04 回答[未読]
【59444】Re:セルをメモ帳にコピペすると違う表示に... にぃ 08/12/11(木) 14:07 発言[未読]

【59438】セルをメモ帳にコピペすると違う表示にな...
質問  いのっち  - 08/12/11(木) 11:07 -

引用なし
パスワード
   A1セルに「山田太郎」 B1セルに「090-1234-5678」とあって、C1セルにこれらのセルを結合したある形にしたいと思って以下のようなマクロにしました。
===========================
Private Sub Worksheet_Activate()
Range("C1") = "氏名 " & Chr(34) & Range("A1") & "さん" & Chr(34) & Chr(10) & "電話番号 = " & Range("B1")
End Sub
===========================

・C1セルの結果

氏名 "山田太郎さん"
電話番号 = 090-1234-5678

・・・と正しく表示されているようですが、(セルダブルクリックによる)セルの中身のテキストコピーでメモ帳などにコピペすると正しいコピーができますが、(セルのシングルクリックによる)セルのコピーでメモ帳やエディタなどにコピーすると、以下のようになってしまいます

"氏名 ""山田太郎さん""
電話番号 = 090-1234-5678"

"氏名 ""山田太郎さん""■電話番号 = 090-1234-5678"

※複数行作ろうと思うので、複数行表示させて、メモ帳などにコピペしようと思うと、失敗例の複数行コピーになってしまいます。よろしく、お知恵をお貸しください。

【59440】Re:セルをメモ帳にコピペすると違う表示...
発言  Jaka  - 08/12/11(木) 13:14 -

引用なし
パスワード
   2002Sp3ですが、なりますね。
Wクォテーションって、CSVなんかでも特別な扱いだから、
エクセルが文字列と認識して余計なお世話をしている可能性もありますね。

メモ帳に貼り付けた後、「""」を「使わないような文字」に変換した後、
「"」を消して、「使わないような文字」を「"」するぐらいじゃないかと思います。

【59443】Re:セルをメモ帳にコピペすると違う表示...
回答  いのっち  - 08/12/11(木) 14:04 -

引用なし
パスワード
   環境:Windows2000(SP4),Excel2000(SP3)

アドバイスありがとうございますm(_ _)m

ダブルクォーテーションとか、改行がうまくいかないようなのですが、ご意見を元に、ワードにRTFでコピーして、そのRTFをさらにテキストでコピーすると、改行してない正常文字列になりました。とりあえず、これで回避できそうです。

今月マクロ週間なので、マクロばかり目がいきがちでしたが、手動で回避した方が早かったのですね(^^;

【59444】Re:セルをメモ帳にコピペすると違う表示...
発言  にぃ  - 08/12/11(木) 14:07 -

引用なし
パスワード
   ▼いのっち さん:
こんにちは!

>"氏名 ""山田太郎さん""
>電話番号 = 090-1234-5678"
>
>"氏名 ""山田太郎さん""■電話番号 = 090-1234-5678"

Excel2003ですが同じ結果となりました。
どうやら、chr(10),chr(13),vbCrLfなどが入るとテキストなどに
ペーストする際、「ここからここまでがグループですよ」という意味で
「”」が入ってきてしまうようですね。

改行等が入らないセルでしたら通常通りにいけるのですね。
確かにお節介機能かもしれません^^;

Jakaさんの置換作業以外に、単純に行を挿入してコピーする方法しか
思い浮かびませんでした。

参考程度にしていただけたら幸いです。

Sub test()

  Dim i As Integer
  
  For i = 1 To 12 Step 2 '6人まで対応
    Rows(i + 1).Select
    Selection.Insert Shift:=xlDown
    Range("C" & i) = "氏名 " & Chr(34) & Range("A" & i).Value & "さん" & Chr(34)
    Range("C" & i + 1) = "電話番号 = " & Range("B" & i).Value
  Next
  
  Range("A1").Select
End Sub

3924 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free