この人頭いいなと思ったエピソード

こんにちはtmgmです。


「指定した範囲をテキストファイルとして名前をつけて保存する。」
というようなマクロが分かる方いらっしゃいますでしょうか?
私がいましている作業の効率化を図るためにあったらすごく便利だなぁとおもって投稿してみました。

セルを選択し、ショートカットキー(例えばCtrl+Shift+f)を押すことで、”名前をつけて保存”ダイアログボックスが表示され、指定した名前でテキストファイルとして保存する

この作業がマクロでできたら非常に便利です。
どなたかご存知の方いらっしゃいましたらご返答宜しく御願いします。

A 回答 (3件)

シートにコマンドボタンを貼りつけ、クリックイベント


に書きました。ショートカットの方がよければ
変えてください。
やり方は、エクセルのセル範囲を指定。(飛び飛びは不可。)
コマンドボタンをクリック。
csvファイルが出来る。文字列は””で囲むと言う方式ではない。
Private Sub CommandButton1_Click()
Open "c:\My Documents\aaa14.csv" For Output As #1
Dim cl As Range
m = Selection(1).Row
fst = "y"
s = ""
For Each cl In Selection
If cl.Row = m Then
If fst = "y" Then
s = cl
fst = "n"
Else
s = s & "," & cl
End If
Else
Print #1, s
s = cl
m = cl.Row
End If
Next
Print #1, s
Close #1
End Sub
ファイル名はInputBoxででもダイアログでも聞こうと思ったが、その辺の変更はご存知のレベルだろうと省略。
(実例)
x,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18,19,20
a,b,c,d,e
f,g,h,I,j
a,b,c,d,e
f,g,h,I,j
a,b,c,d,e
    • good
    • 0

ちょっとリファインする必要がありますが、あまり時間が無いのでこれで勘弁してください。


簡単なマクロを組んで見ました。

<問題点>
ファイル名の指定をすることができない。(名前をつけて保存ダイアログが出ない)
最後のシート削除に確認メッセージが出る。

Sub SelectionSave()

'選択範囲を新しいシートにコピー
Selection.Copy
Sheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False

'保存
ActiveWorkbook.SaveAs Filename:="C:\Book1.txt", _
FileFormat:=xlText

'一時使用したシートを削除
ActiveWindow.SelectedSheets.Delete

End Sub
    • good
    • 0

Wordですか?Excelですか?



ついでにバージョンも教えてください。

この回答への補足

こんにちは、tmgmです。

すいません。それをお伝えするのを忘れていました。
ソフトはExcelです。
バージョンはXP(SP3)です。

補足日時:2004/07/09 14:33
    • good
    • 0

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


おすすめ情報