#1&2です。
選択範囲がセルでないとき、何もしないで抜ける
If TypeName(Selection) <> "Range" Then Exit Sub
選択範囲をコピー
Selection.Copy
以上を削除すれば、「選択範囲をクリップボードにコピー」は無くせます。
質問者
補足
何度も本当にありがとうございます。
教えていただいたやり方を試したのですが、
Sub Sample()
Dim FSO
Dim buf As String, CB As New DataObject
の, CB As New DataObjectのところがコンパイルエラー:ユーザー定義型は定義されておりません。となってしまいます。
自分の知識ではこれが何を指すものなのかわかりません。
もしお時間が許せば引き続きご教示いただけると助かります。
ひとまず何度も回答どうもありがとうございました。
感謝です。
選択範囲をクリップボード経由でテキストファイルに書き出してみました。
(当方XL2000)
shabushabuさんのなさりたいことは、先の田中先生のサイトの諸パーツを組み合わせれば実現できます。クリップボードのコードもそこから借用しました。
'Microsoft Forms 2.0 Object Libraryを参照設定
'探すのが面倒なら、Userformを作って、何も入れずに解放しても参照設定は残る
Sub Sample()
Dim FSO
Dim buf As String, CB As New DataObject
If TypeName(Selection) <> "Range" Then Exit Sub
Set FSO = CreateObject("Scripting.FileSystemObject")
Selection.Copy
With CB
.GetFromClipboard ''クリップボードからDataObjectにデータを取得する
buf = .GetText ''DataObjectのデータを変数に取得する
End With
With FSO.OpenTextFile("C:\Sample.txt", iomode:=2, create:=True)
.Write buf
.Close
End With
Application.CutCopyMode = False
Set FSO = Nothing
End Sub
お礼
mitarashi 様 お礼が遅くなってしまいまして申し訳ありませんでした。 教えていただいた方法でうまく作成することが出来ました! 何度も回答いただけたおかげで自分の思っていたことが出来、本当に感謝しております。 今後は少し自分でも勉強してせめて今回教えていただいたマクロの内容くらいは理解できるようになるようにがんばります。 度重なる質問に対し、対応いただき本当にありがとうございました。 お礼の言葉だけになってしまい申し訳ありません。 これで業務がかなりはかどります!!