【マクロVBA】エクセルのファイル名をクリップボードへ貼り付ける

マクロVBA

仕事上、開いているエクセルのファイル名を関係者に展開する機会はありませんか?
私は結構その機会があるのですが、エクスプローラーからエクセルを探したり、エクセルの[ファイル]>[情報]タブからパスを取得しファイル名だけ抜き出す手間が面倒だと感じていました。

ウォルト
ウォルト

一瞬でエクセルのファイル名をコピーする方法をお教えします!

ソースコード

以下、ソースコードになります。コピペして使ってみてください。

'-------------------------------------------
'概要:ファイル名をクリップボードへ貼り付ける
'-------------------------------------------
Sub GetFileName()
    Dim fileName    As String
    
    'ファイル名の取得
    fileName = Application.ActiveWorkbook.Name
    
    'クリップボードへのコピー
    Call CopyClipBoard(fileName)
End Sub

'-------------------------------------------
'概要:クリップボードへの文字の貼り付け
'-------------------------------------------
Function CopyClipBoard(text As String)
    With CreateObject("Forms.TextBox.1")
        .MultiLine = True
        .text = text
        .SelStart = 0
        .SelLength = .textLength
        .Copy
    End With
End Function

GetFileNameを実行することで、CopyClipBoardを呼び出してファイル名をクリップボードへ貼り付けています。

実際の動き

下記では、「便利ツール.xlsm」を開いた状態で、GetFileNameを実行しています。
クリップボードを表示させると(「Win」+「V」)、表示していたファイル名がコピーできていることが確認できます。

コメント

タイトルとURLをコピーしました