• ベストアンサー

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使ったことが無いのでチンプンカンプンでした。 できれば具体的なコーディング例をご提示いただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.2

Dim MyWSH As Object Set MyWSH = CreateObject("WScript.Shell") myDeskTopPath = MyWSH.SpecialFolders("Desktop") Set MyWSH = Nothing これでどうでしょうか。

souta_n
質問者

お礼

ばっちりです。 ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

本体のファイルを各自のデスクトップに置いてもらい、 ThisWorkbook.Pathで取得したらいかがでしょうか?

souta_n
質問者

お礼

う~ん、確かにデスクトップに本体ファイルを置ければ苦労はないのですが。 また、それができれば、pathを指定せず、ファイル名だけ指定すれば、同じデレクトリ、つまりデスクトップにファイルが出来上がるので、ThisWorkbook.Pathで取得する必要もなくなるのです。 いや、でもシンプルに考えればそれもありか・・・ ありがとうございました。

関連するQ&A