プロが教えるわが家の防犯対策術!

A.xlsのSheetBをメモ帳に貼り付けて名称をC2009.4.6.txt
にしたいと考えています。
SheetBのコピーをしメモ帳を起動後、メモ帳に貼り付けるところまではsendkey等で強引にやったのですが、「名前を付けて保存する」を手動で行わなければならないので
少々面倒くさく感じています。
作成したtxtファイルをD:E\に自動で保存させる方法はないでしょうか?
出来れば名称はデータ2009.4.6.txtの様に保存した日付が入ると助かります。また、同じ名称のものが既にあった場合はファイルネームに(2)が入るようにしたいと考えております。

どうかお知恵を拝借ください。
よろしくお願いします。

A 回答 (5件)

#3についてですが、


参照設定されていないのでしょう。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
'Microsoft Forms 2.0 Object Libraryを見つけてチェックを入れて下さい。
    • good
    • 1
この回答へのお礼

mitarashi 様

 お礼が遅くなってしまいまして申し訳ありませんでした。
 教えていただいた方法でうまく作成することが出来ました!

 何度も回答いただけたおかげで自分の思っていたことが出来、本当に感謝しております。
 今後は少し自分でも勉強してせめて今回教えていただいたマクロの内容くらいは理解できるようになるようにがんばります。

 度重なる質問に対し、対応いただき本当にありがとうございました。
 お礼の言葉だけになってしまい申し訳ありません。

 これで業務がかなりはかどります!!

お礼日時:2009/04/07 16:26

こんなのではだめ?



Dim x As String
x = Format(Date, "yyyy.m.d" & ".txt")
Application.SendKeys (x), True

又は、ファイル名をクリップボードへ格納しておき、SendKeys でペーストするとか?
クリップボードを操作する(1) http://www.officetanaka.net/excel/vba/tips/tips2 …
    • good
    • 0

#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のところがコンパイルエラー:ユーザー定義型は定義されておりません。となってしまいます。
自分の知識ではこれが何を指すものなのかわかりません。

もしお時間が許せば引き続きご教示いただけると助かります。
ひとまず何度も回答どうもありがとうございました。
感謝です。

補足日時:2009/04/06 23:05
    • good
    • 0

選択範囲をクリップボード経由でテキストファイルに書き出してみました。


(当方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 様

 回答、本当にありがとうございます。
 教えていただいたマクロがいまいち理解できませんでした。
 
 必要な内容のコピー(クリップボードにデータを保存)までは出来ている場合、どの様に記述を変更させれば良いのでしょうか?

 お手数ですが、ご教示お願いします。

補足日時:2009/04/06 22:35
    • good
    • 0

VBAで直接テキストファイルを書き出してはいかがでしょう。


書込は参考URLの一番下の方にあります。
http://officetanaka.net/excel/vba/filesystemobje …
    • good
    • 0

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