
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】エクセルで最後の不要な改行コードを削除するコードについて 3 2023/09/08 18:41
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) クリップボードに貼付している文字列が、マクロで別ブックへ転記すると、消えてしまう 1 2023/10/15 13:36
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Visual Basic(VBA) 条件をつけて 抽出 7 2021/12/14 14:37
- Visual Basic(VBA) EXCEL VBA シート比較し〇×判定 1 2021/11/19 11:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/09/21 13:01
- Visual Basic(VBA) EXCEL VBA シート貼り付け 3 2021/11/15 12:33
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
EXCELからCSVにすると余計なカ...
-
C#で、テキストボックスの入力...
-
Excelについて質問です。 セル...
-
CSVの定義
-
WORDで改ページすると時々グレ...
-
textareaの入力データで無駄な...
-
VB2005のTextBoxでカン...
-
テキストファイルからReadLine...
-
メモ帳からエクセルにセル区切...
-
カンマ区切り
-
gooの参考urlに2つのサイトを
-
カンマ区切りでないテキストをc...
-
パス区切りの文字について
-
エクセル セルの書式設定 ユ...
-
VBAでtxtファイルを読み込む際...
-
【VBA】エクセルで値のみクリッ...
-
エクセルの関数カンマ区切りの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
WORDで改ページすると時々グレ...
-
CSVの定義
-
Excelについて質問です。 セル...
-
カンマ区切り
-
VBAでtxtファイルを読み込む際...
-
[VBA][Excel]クリップボードか...
-
カンマ区切りの数字をCSVフ...
-
C#で、テキストボックスの入力...
-
データにカンマが入ったCSVデー...
-
パス区切りの文字について
-
メモ帳からエクセルにセル区切...
-
エクセルにペーストする際にカ...
-
JPY ¥1,500.00は日本円でお幾ら?
-
区切り文字をTABにしたい
-
PHP カンマをエスケープしたい...
-
(エクセル)特定のスペースを...
おすすめ情報