ExcelVBA デスクトップにファイルを保存に使うパスを取得する方法

 

ExcelVBAで、デスクトップにファイルを保存したり、デスクトップ上のファイルにアクセスする場合、デスクトップのパスを取得する必要があります。VBAを使用すると、自動的にそのパスを取得して操作することができます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA デスクトップパスを取得の利用

以下のようなシーンで利用されます。

1.デスクトップにファイルを保存
ユーザーが簡単に見つけられるように、生成したファイルをデスクトップに保存する。

2.デスクトップ上の特定ファイルを開く
デスクトップ上に保存されているファイルをVBAで操作・読み取る。

使い方

VBAを使ってデスクトップのパスを取得するためには、`Environ`関数を利用します。この関数を使うと、Windowsの環境変数にアクセスでき、ユーザーごとのデスクトップパスを取得可能です。

 

ポイント

1.ユーザー環境の違い
取得したデスクトップパスは、実行するPCのユーザーごとのデスクトップパスです。他のPCやユーザーでは異なるパスになる可能性があるため、環境に依存します。

2.ファイルの存在確認
デスクトップにファイルを保存する場合、そのパスが存在するか確認し、上書きに注意が必要です。

 

Excel VBA デスクトップパスを取得のサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

デスクトップにファイルを保存するコード
例えば、デスクトップに「TestFile.txt」というテキストファイルを作成するVBAの例です。

Option Explicit

Sub SaveToDesktop()
    Dim desktopPath As String
    Dim filePath As String
    desktopPath = Environ("USERPROFILE") & "\Desktop"
    filePath = desktopPath & "\TestFile.txt"
    
    ' テキストファイルの作成
    Open filePath For Output As #1
    Print #1, "これはテストファイルです。"
    Close #1
    
    MsgBox "ファイルをデスクトップに保存しました。"
End Sub

デスクトップに存在するファイルを開く
デスクトップ上に保存されている「TestFile.txt」を開いて中身を読み取る例です。

Option Explicit

Sub OpenFromDesktop()
    Dim desktopPath As String
    Dim filePath As String
    Dim fileContent As String
    desktopPath = Environ("USERPROFILE") & "\Desktop"
    filePath = desktopPath & "\TestFile.txt"
    
    ' ファイルが存在するか確認
    If Dir(filePath) <> "" Then
        ' ファイルを開いて読み込み
        Open filePath For Input As #1
        Input #1, fileContent
        Close #1
        MsgBox "ファイルの中身: " & fileContent
    Else
        MsgBox "ファイルが見つかりません。"
    End If
End Sub

ExcelVBAでデスクトップパスを取得する方法は、ファイルの保存や読み込みを自動化したいときに非常に便利です。簡単なコードで現在のユーザーのデスクトップパスを取得し、ファイル操作を効率化することが可能です。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。