- ベストアンサー
ExcelVBAでデスクトップのPATHを取得するには
こんにちわ。ExcelVBAで、ワークシートのA列に入力されているデータをTextファイルに保存するプログラムを作りました。下記のものです。 ================================= Sub Expo_TXT() Dim Rows As Long Dim StrData As String Dim Fs As Object, A As Object Set Fs = CreateObject("Scripting.FileSystemObject") Set A = Fs.CreateTextFile("c:\test.txt", True) For Rows = 1 To 10 StrData = Worksheets("Sheet1").Cells(Rows, 1).Value A.WriteLine StrData Next Rows A.Close End Sub ================================= しかし見てのとおりcドライブのルートにtest.txtという名前で保存するようになっています。 できれば、そのパソコンのデスクトップに保存したいのですが、どうすれば、パソコンのデスクトップのPATHを取得できるでしょうか? それぞれのパソコンのデスクトップは c:\windows\デスクトップという様にWin98マシンもあれば c:\Documents and Settings\Hanako\デスクトップや c:\Documents and Settings\Taro\デスクトップという場合もあります。多分APIとか使うんだろうなと思い、Webの解説ページを読んだりしましたがAPI使ったことが無いのでチンプンカンプンでした。 できれば具体的なコーディング例をご提示いただければ助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim MyWSH As Object Set MyWSH = CreateObject("WScript.Shell") myDeskTopPath = MyWSH.SpecialFolders("Desktop") Set MyWSH = Nothing これでどうでしょうか。
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
本体のファイルを各自のデスクトップに置いてもらい、 ThisWorkbook.Pathで取得したらいかがでしょうか?
お礼
う~ん、確かにデスクトップに本体ファイルを置ければ苦労はないのですが。 また、それができれば、pathを指定せず、ファイル名だけ指定すれば、同じデレクトリ、つまりデスクトップにファイルが出来上がるので、ThisWorkbook.Pathで取得する必要もなくなるのです。 いや、でもシンプルに考えればそれもありか・・・ ありがとうございました。
お礼
ばっちりです。 ありがとうございました。