アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

質問者様のマクロを修正して、範囲を


A1:B2
として実行し
A4に貼り付けてみました。

それを
Book1.csv
として保存しましたが、フツーの結果
でした
※質問者様の内容は再現しませんでした。

再現性がありませんので、質問者様が
困っていらっしゃる内容をスクショ
撮られては如何でしょうか?
「【VBA】エクセルで値のみクリップボード」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。解決しました。
テキストファイルに貼り付けるとおそらくタブが入っているせいで,少し間延びした感じになってしまいます。

お礼日時:2023/09/08 17:44

こんばんは



なさりたいことがよくわかりませんけれど・・・

面倒なマクロなど利用しなくても普通に「コピー」して、ペースト時に「形式を選択して貼り付け」-「値を貼り付け」で済むと思いますけれど・・?
    • good
    • 0
この回答へのお礼

解決しました。
なお,値のみで貼り付けても,同じく間延びした感じになってしまいます。
そこの修正ができたのと,範囲を選択しないで済むあたりがマクロを使うメリットかなと思います。

お礼日時:2023/09/08 17:42

「スペース」「タブ」「改行」ではなく「カンマ」で区切ればいい。


そんだけの事ですね。

まずは今使っているコードについて理解することから始めましょう。

・・・

ここは「代わりにマクロを作ってください」と作業依頼する場所ではありません。
自力で問題解決できるようになるためのアドバイスを貰う場所です。
マクロを教えてくださった方は、自力でマクロを読んで理解したうえで使ってくれると考えていると思います。
それをまた他人に「作り直せ。俺様の成果として使ってやるwww」なんてことをしてはいけません。

そのコードの中で何が分からないのか。
また分からないなりに何を調べて理解できなかったのかを併記しましょう。

/***投稿ガイドラインから抜粋***

【他の人に不快・迷惑と感じられてしまう行為】
下記のような行為については、たとえわざとではなくても、結果として他の人にマナー違反であり不快・迷惑と感じられてしまう可能性があります。もし知らずに行ってしまった場合でも、繰り返さないようにご注意ください。
(中略)
■宿題や課題などの「作業依頼(丸投げ)」
学校の課題等に関して、ご自身なりに解答を考えたプロセスの説明も無く、単に解答のみをそのまま依頼・募集するような内容(いわゆる「丸投げ」)の投稿は、閲覧される方や回答者に不快に思われる恐れがあります。
また、社会的マナーや回答者に対する敬意や配慮、尊重の気持ちにも欠けていると思われる場合もありますので、お控えください。
まずはご自身で課題に取り組み、その結果どうしても一部の箇所について理解が出来ない、どう進めばいいか分からない、といったようなご自身なりの解答プロセスの説明もした上でアドバイスを求めるようにしましょう。

***ここまで***/

これに相当してしまいますよ。
    • good
    • 2
この回答へのお礼

失礼しました。
おっしゃるとおりです。

タブが入るコードになっていたようで,その個所を消すと望む結果になりました。

お礼日時:2023/09/08 17:39

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A