[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『改行データのクリップボードへのコピー』(ねる)
こんにちは。
VBA勉強中のひよっこです。
セルA1とB2とB3:B12に入力されている文字列を改行を入れつつクリップボードにコピーして、ウェブの社内フォーラムに活用したいと考えております。
手探りでソースを書いてみたのですが、エラーでどこが悪いのか良く分かりません。
手ほどき頂けたら幸いです。
よろしくお願い致します。
Sub test()
Dim i As String
Dim x As Object
Set x = New DataObject
i = Range("A1") & vbCrLf & Range("B2") & vbCrLf & Range("B3:B12")
With x .SetText i .PutInClipboard End With
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
>i = Range("A1") & vbCrLf & Range("B2") & vbCrLf & Range("B3:B12") これをどういう連結を期待しているのか不明ですが
i = Join(Array(Range("A1").Value, Range("B2").Value, Join([transpose(B3:B12)])), vbLf) 違っている場合は期待する結果を提示した方が分かりやすいですね。 (seiya) 2019/03/26(火) 13:26
xの型宣言がちがっています。
Dim x As DataObject それと、DataObjectオブジェクトを使うには、 Microsoft Forms 2.0 Object Library への参照設定が必要です。
プロジェクトにUserFormを追加すると、勝手に参照設定が追加されるので、 UserFormを一回追加して、またすぐ解放するといいです。 (でれすけ) 2019/03/26(火) 13:33
あ、そか 参照設定されていれば、Object型でも入るのか。 失礼しました。 (でれすけ) 2019/03/26(火) 13:35
期待する結果ですが、
A1
B2
B3:B12
これらのセル全てに文字列が入っているのですが、
例としまして
A1=鈴木一郎
B2=タスクの表題
B3=タスクA
B4=タスクB
B5=タスクC
B6=タスクD
B7=タスクE
B8=タスクF
B9=タスクG
B10=タスクH
B11=タスクI
B12=タスクJ
と入力されているものを、WEBの社内フォーラムに貼り付ける為、
マクロを実行する事でクリップボードに上記を改行つきでコピーしたいと考えております。
ご教授頂いたソースを理解する為、一単語ずつ分解して調べてみたいと思います。
(ねる) 2019/03/26(火) 14:14
私の想定通りですが、 B3:B12 の連結はスペースで分割されています。
もしスペース以外の文字列、又はスペースを挟まないでということなら
Join([transpose(B3:B12)],"文字列")
にしてください。 (seiya) 2019/03/26(火) 14:19
とても勉強になりました♪
ありがとうございました^^
(ねる) 2019/03/26(火) 14:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.