
office365のExcelを使っている者です。
以前ここで,エクセルで選択した範囲の値のみをクリップボードにコピーする以下のコードを教えていただき,現在も使用しております。
適切に動いていると思いますが,一点気になることがあります。
クリップボードにコピーされたデータを貼り付けると,横方向のセルの区切り(エクセルをcsvにしたときのコンマ区切りに相当するもの)にスペースのような空白(以下「空白」)が入ってしまい、間延びした感じになってしまいます。
「空白が削除された状態でクリップボードにコピーされる」又は「クリップボードにコピーされたデータにつき空白が削除された状態にする」というコードにするには,どのようにしたら良いかご教示ください。
Sub 値のみコピー()
Dim ary As Variant
ary = Range("A10:J30").Value '選択範囲の値を一旦配列に格納
' Dim myDO As New DataObject
Dim myDO As Object
Set myDO = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Dim i As Long, j As Long
Dim strBuf As String
For i = 1 To UBound(ary, 1)
For j = 1 To UBound(ary, 2)
strBuf = strBuf & ary(i, j) & vbTab
Next
strBuf = Left(strBuf, Len(strBuf) - 1) '右のタブコードを削除
strBuf = strBuf & vbCrLf '改行コードを付加
Next
myDO.SetText strBuf
myDO.PutInClipboard
Set myDO = Nothing
End Sub
No.2
- 回答日時:
こんばんは
なさりたいことがよくわかりませんけれど・・・
面倒なマクロなど利用しなくても普通に「コピー」して、ペースト時に「形式を選択して貼り付け」-「値を貼り付け」で済むと思いますけれど・・?
解決しました。
なお,値のみで貼り付けても,同じく間延びした感じになってしまいます。
そこの修正ができたのと,範囲を選択しないで済むあたりがマクロを使うメリットかなと思います。
No.1
- 回答日時:
「スペース」「タブ」「改行」ではなく「カンマ」で区切ればいい。
そんだけの事ですね。
まずは今使っているコードについて理解することから始めましょう。
・・・
ここは「代わりにマクロを作ってください」と作業依頼する場所ではありません。
自力で問題解決できるようになるためのアドバイスを貰う場所です。
マクロを教えてくださった方は、自力でマクロを読んで理解したうえで使ってくれると考えていると思います。
それをまた他人に「作り直せ。俺様の成果として使ってやるwww」なんてことをしてはいけません。
そのコードの中で何が分からないのか。
また分からないなりに何を調べて理解できなかったのかを併記しましょう。
/***投稿ガイドラインから抜粋***
【他の人に不快・迷惑と感じられてしまう行為】
下記のような行為については、たとえわざとではなくても、結果として他の人にマナー違反であり不快・迷惑と感じられてしまう可能性があります。もし知らずに行ってしまった場合でも、繰り返さないようにご注意ください。
(中略)
■宿題や課題などの「作業依頼(丸投げ)」
学校の課題等に関して、ご自身なりに解答を考えたプロセスの説明も無く、単に解答のみをそのまま依頼・募集するような内容(いわゆる「丸投げ」)の投稿は、閲覧される方や回答者に不快に思われる恐れがあります。
また、社会的マナーや回答者に対する敬意や配慮、尊重の気持ちにも欠けていると思われる場合もありますので、お控えください。
まずはご自身で課題に取り組み、その結果どうしても一部の箇所について理解が出来ない、どう進めばいいか分からない、といったようなご自身なりの解答プロセスの説明もした上でアドバイスを求めるようにしましょう。
***ここまで***/
これに相当してしまいますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
[VBA][Excel]クリップボードか...
-
エクセルで数値を全角文字(カ...
-
wordの数字の列をexcelに貼り付...
-
(エクセル)特定のスペースを...
-
WORDで改ページすると時々グレ...
-
C#でcsvファイルの列を入れ替え...
-
マクロを使ってフォルダー内に...
-
カンマ区切りでないテキストをc...
-
Excelについて質問です。 セル...
-
住宅にカナを入力する際に丁目...
-
word差し込み印刷 半角カタカ...
-
Excel VBAでPDFファイルをMicro...
-
算用数字(半角)から漢数字へ...
-
英数字のみ全角から半角に変換
-
全角英数字の必要性が理解できない
-
文字コードの%E3%80%とは何です...
-
ダブルクォーテーション置換時...
-
VBA 置換文字がみつからない時
-
ファイル名の右側を変更したい ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
Excelについて質問です。 セル...
-
WORDで改ページすると時々グレ...
-
EXCELからCSVにすると余計なカ...
-
CSVの定義
-
マクロを使ってフォルダー内に...
-
[VBA][Excel]クリップボードか...
-
カンマ区切りの数字をCSVフ...
-
メモ帳からエクセルにセル区切...
-
C#で、テキストボックスの入力...
-
【VBA】エクセルで値のみクリッ...
-
エクセルの区切り位置の設定方法
-
データにカンマが入ったCSVデー...
-
エクセルにペーストする際にカ...
-
カンマ区切り
-
[.NET2.0] メニューに区切り線
-
C#でcsvファイルの列を入れ替え...
-
openoffice calcで#DIV/0! の...
-
ひとつの命令を複数行に記述
おすすめ情報